개발
-
#if, #endif로 디버그와 릴리즈용 컴파일을 구별할 수 있다. [code language=”csharp”] using System; namespace CSharpConsole { class Program { static void Main(string[] args) { #if DEBUG Console.WriteLine("Debug"); #endif Console.WriteLine("Hello World!"); } } } [/code] 위 코드를 Debug로 빌드하면 Debug와 Hello World!가 모두 출력되지만, Release로 빌드하면 Hello World!만 출력된다. 그러나 위와 같이 #if/#endif블록을 나누는 것은 보기에도 안좋고,…
-
const는 컴파일 상수이다. 적용이 컴파일 시에 이루어진다. readonly는 런타임 상수이다. 적용이 런타임에 이루어진다. 이 차이를 알아보기 위해서 다음과 같은 시도를 해보았다. 1. 다음과 같은 두 상수가 정의된 클래스 라이브러리 ConstantTestLib를 만들고 dll파일 제작 [code language=”csharp”] namespace ConstantTestLib{ class MyConstant{ public const int CONST_MAX = 2500; public static readonly int RDONLY_MAX…
-
– public member field보다는 property를 이용하는 편이 낫다. 다음과 같은 클래스에 대해서 [code language=”csharp”] class Namecard{ public string name; … } [/code] name을 not null로 만들기 위해서는 여러 코드를 고쳐야한다. 그러나 프로퍼티를 이용하면, [code language=”csharp”] class Namecard{ private string name; public string Name{ get { return name; } set { if(value == null) throw new…