Programming/c# & winform2020. 10. 14. 10:30

string?는 nullable한 string 변수를 사용하겠다는 의미인데

그냥 빌드하면 다음과 같은 경고를 내뱉는다.

warning CS8632: The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.

 

이 경우에는 아래와 같이 #nullable 어노테이션 컨텍스트를 이용해서 알려주면 경고가 뜨지 않게 된다.

using System;
using System.IO;

class test
{

static void Main()
{
string manyLines=@"This is line one
This is line two
Here is line three
The penultimate line is line four
This is the final, fifth line.";

using (var reader = new StringReader(manyLines))
{
#nullable enable
    string? item;
    do {
        item = reader.ReadLine();
        Console.WriteLine(item);
    } while(item != null);
}
}
}

[링크 : https://stackoverflow.com/questions/55492214/]

[링크 : https://docs.microsoft.com/ko-kr/dotnet/csharp/nullable-references]

 

특성(attribute)

[링크 : https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/concepts/attributes/]

 

+

내용만 보면. java annotation에 대응되는건 attribute이고

c#의 annotation은 compiler directive에 가까운 것 같기도 하고... 조금 더 찾아봐야겠다.

[링크 : https://stackoverflow.com/questions/553857/]

 

+

#define 처럼 #이니까 directive 맞네 -_-

Posted by 구차니