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 맞네 -_-
'Programming > c# & winform' 카테고리의 다른 글
csharp webbrowser ctrl (0) | 2020.10.15 |
---|---|
markdown c#용 라이브러리 (0) | 2020.10.15 |
mono .net framework 실행 (0) | 2020.10.13 |
.net core/.net framework 컨트롤 차이 (0) | 2020.10.13 |
.net core와 .net framework 차이 - winform menustrip (0) | 2020.10.13 |