2016-07-25 3 views
2

C#에 Nullable 주석이 있습니까? 개발자가C# 및 nullable 플래그/주석?

Object.getModel().someMethod() 

는 컴파일러가 null이 확인되지 않은 것을 그들에게 경고합니다 호출하려고 지금

public @Nullable <T extends BaseJsonClass> T getModel(String saveKey, Class<T> type) { 

자바

예를 들어

.

someObject?과 같은 var 이름 끝에있는 ? 마크를 알고 있지만이 문제는 많은 곳에서 변수가 사용될 때 까다 롭거나 성가신/JSON 모델 일 수 있다는 점을 알고 있습니다.

+0

시도해보십시오. 동일한 요청과 동일하게 보입니다. [링크] (http://stackoverflow.com/questions/291340/mark-parameters-as-not-nullable-in-c-net) – Thennarasan

+0

가능한 중복 [C# : 구현 및 NotNull 및 CanBeNull 특성 사용 방법] (http://stackoverflow.com/questions/792531/c-how-to-implement-and-use-a-notnull-and-canbenull-attribute) – user3185569

+0

이 같은 것이 C# – Neel

답변

7

C#을 그런 아무것도하지 않는 미래 발전에 대한 제안입니다 - 같은 기능은 언어 (아직)의 일부가 아닙니다. [CanBeNull], [NotNull], [ItemCanBeNull], [ItemNotNull] : 당신이 ReSharper에서 사용하는 경우

그러나, 당신은 당신이 당신의 코드에 몇 가지 속성을 추가 할 수는 Value and Nullability Analysis 기능을 활용할 수 있습니다. 플러그인이 수행하는 null 허용 여부 분석은 이러한 특성을 고려하여 사용자가 요청한 컴파일 타임 경고를 발생시킵니다.

+0

컴파일러는이를 어떻게 처리합니까? –

+0

글쎄, 필자는 컴파일러가 이론적으로 복잡한 분석을하고 그가 어디에서 null을 확인하지 않을 때 경고를 생성 할 수 있다고 상상한다. 하지만 당신이 맞습니다. 이것은 컴파일러보다 더 많은 언어 기능입니다. 나는 이것을 다시 말할 것이다. – pmbanka