.NET

    [C#] 프로퍼티(Property)

    1. 프로퍼티 C#에서 어떤 필드의 은닉성을 지키기 위해 필드에 값을 읽고 쓰는 메서드를 만들었다면 class Program { static void Main(string[] args) { Car car = new Car(); car.SetSpeed(100); car.GetSpeed(); } } class Car { private int speed; public int GetSpeed() { return speed; } public void SetSpeed(int i) { speed = i; WriteLine(speed); } } 같은 기능을 프로퍼티로 완벽하게 대체할 수 있습니다. class Program { static void Main(string[] args) { Car car = new Car(..

    [C#] 인터페이스와 추상클래스

    [C#] 인터페이스와 추상클래스

    1. 인터페이스 (Interface) 인터페이스는 클래스를 만들 때 특정 메서드를 반드시 구현하도록 강제하는 역할을 합니다. 바꿔 말하면 어떤 인터페이스를 상속받아 만들어진 클래스는 인터페이스에 명시된 메서드가 반드시 구현되어 있다는 것을 보증할 수 있습니다. 인터페이스는 interface키워드를 사용해 아래와 같은 방법으로 구현합니다. interface ICar { void Drive(); } ICar는 인터페이스의 식별자(이름)인데 반드시 그렇게 해야 하는것은 아니지만 관례상 인터페이스의 이름은 대문자 I로 시작합니다. 인터페이스 내부를 보면 Drive()라는 메서드의 이름만을 가지고 있습니다. 이것이 인터페이스의 특징으로 실제 구현되는 내용은 포함하지 않고 특정 메서드나, 이벤트, 인덱서, 프로퍼티..

    [C#] 클래스(Class)

    [C#] 클래스(Class)

    C#은 객체지향 프로그래밍(Object Oriented Programming) 언어이고 객체지향 프로그래밍은 프로그램의 처리 대상이 되는 모든 것을 객체(Object)로서 표현합니다. 예컨대 '자동차'라는 대상을 객체로 표현한다면 '달리다.', '멈추다.'등과 같은 대상의 동작을 메서드(Method)로, '색상', '속도', '배기량'같은 대상의 특징을 속성(Property)으로 추출해 표현하면 그것이 객체가 됩니다. 클래스(Class)라는 건 이 객체를 생성하기 위한 틀을 말하는 것인데 객체를 표현하기 위해 어떤 속성과 메서드가 필요한지를 판단하고 그것을 '클래스'로 정의합니다. 객체를 만들어 내기 위한 설계도 같은 것으로 클래스로부터 객체(객체를 인스턴스(Instance)라고도 합니다.)를 생성하고 ..

    [C#] 메서드

    [C#] 메서드

    1. 메서드 기본 메서드는 함수와 비슷한 개념으로 특정 목적을 위해 작성된 코드를 묶어 놓은 것을 말합니다. 보통 클래스에 소속된 함수를 메서드라고 부르며 일반적인 함수와는 구분되는 개념입니다. using System; using static System.Console; namespace Test { class MyTestApp { static void Main(string[] args) { Plus(10, 20); } static void Plus(int i, int j) { WriteLine(i + j); } } } 예제에서는 Plus()메서드를 만들고 이를 Main() 메서드에서 호출하여 두 숫자의 합을 확인하고 있습니다. 필요에 따라 특정 메서드에서 자기 자신을 스스로 호출하는 경우도 있는데 이를..

    [C#] 제어문

    [C#] 제어문

    제어문이라 함은 말 그대로 프로그램의 흐름을 제어하는 프로그래밍 구문을 의미합니다. 1. 분기문 주어진 조건에 따라 프로그램의 흐름을 분기하여 처리합니다. ● if 주어진 조건이 참인 경우 이하 구문을 실행합니다. static void Main(string[] args) { bool b = true; if (b == true) WriteLine("b는 참"); //b가 true이므로 해당 문장 실행 } 제어문은 기본적으로 구문 이후에 나오는 단 하나의 문장(; 기준)만을 평가 대상으로 합니다. 실행해야 할 구문이 여러 줄이라면 { 와 } 로 실행할 문자를 묶어줄 수 있습니다. static void Main(string[] args) { bool b = true; if (b == true) { //{ 부터..

    [C#] 연산자

    1. 산술 연산자 숫자 형식의 데이터에 사용 가능한 산술 연산자로는 다음과 같은 것들이 있으며 계산방식은 일반적인 수학 연산과 거의 동일합니다. 연산자 기능 + 더하기 - 빼기 * 곱하기 / 나누기 % 나머지 static void Main(string[] args) { int i = 10; int j = 20; int s = i + j; //+ 연산자 WriteLine(s); } ● 문자열 결합 산술 연산자 중 + 연산자는 다음과 같이 문자열 결합에도 사용할 수 있습니다. static void Main(string[] args) { string s1 = "123"; string s2 = "456"; WriteLine(s1 + s2); } 문자열은 서로 연산하지 않고 단순히 결합되므로 위의 예제는 "123..

    [C#] 데이터

    [C#] 데이터

    1. 데이터 형식 C#에서 데이터 형식은 다음과 같이 나누어 볼 수 있습니다. 데이터는 크게 숫자나 문자열을 다루는 기본형식과 클래스, 구조체등을 다루는 복합형식으로 나누어 볼 수 있고 데이터의 저장방식에 따라 각각 값 형식과 참조 형식으로 구분할 수 있습니다. 2. 변수 '변수'는 값을 담기 위한 공간을 말하며 다르게는 메모리 확보를 위한 수단으로 해석될 수 있습니다. 예컨데 int i; 라고 하면 컴파일러는 int형 숫자를 담을 수 있을만큼의 메모리 공간을 확보하고 i = 100; 이라고 하면 확보된 메모리공간에 100이라는 값을 저장하게 됩니다. 본래는 메모리 주소를 직접 지정하면서 필요한 값을 저장하거나 확인해야 하지만 그렇게 하기에는 너무 불편하고 위험하기 때문에 '변수명'을 메모리주소로 대신하..

    [ASP.NET Core] Microsoft.Data.SqlClient.SqlException (0x80131904)

    Linux환경 하에서 작동하는 ASP.NET Core 5 웹서비스에서 Windows Server의 MSSQL Server 접속 시 아래와 같은 오류가 발생하는 경우 Microsoft.Data.SqlClient.SqlException (0x80131904): A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed) MSSQL Server에서 TLS1.2 연결이 지원되는지 확인해야 합니다. 해당 문제점이 발생된 사레로는 MS..