C 中煩人的Null值判斷竟然這樣就被消滅了

2021-10-21 17:22:04 字數 1185 閱讀 9777

說明,提供思路的一篇文章招來這麼多非議,為何啊?

羅嗦話不多說,先看下面一段簡單的不能再簡單的null值判斷**:

public void dosomething(string message)

方法體的每個引數都將用if語句進行檢查,並逐個丟擲argumentnullexception的異常。

關注我的朋友,應該看過我上篇《乙個小技巧助您減少if語句的狀態判斷》的文章,它也是簡化null值判斷的一種方式。簡化後可以如下所示:

public void dosomething(string message)

但是還是很差強人意。

**這裡你可能想到了_system.diagnostics.codeanalysis_命名空間下的這個 [notnull] 特性。這不會在執行時檢查任何內容。它只適用於codeanalysis,並在編譯時而不是在執行時發出警告或錯誤!

public void dosomething([notnull]string message) // does not affect anything at runtime.

public void anothermethod()

這裡我們將去掉用於null檢查的if語句。如何處理csharp中方法引數的賦值?答案是你不能!. 但你可以使用另一種方法來處理隱式運算子的賦值。讓我們建立notnull類並定義乙個隱式運算子,然後我們可以處理賦值。

public class notnull

public t value

public static implicit operator notnull(t value)

}

現在我們可以使用notnull物件作為方法引數.

static void main(string args)

{ dosomething("hello world!"); // works perfectly

C 中煩人的Null值判斷竟然這樣就被消滅了

說明,提供思路的一篇文章招來這麼多非議,為何啊?羅嗦話不多說,先看下面一段簡單的不能再簡單的null值判斷 public void dosomething string message 方法體的每個引數都將用if語句進行檢查,並逐個丟擲argumentnullexception的異常。關注我的朋友,...

C 中煩人的Null值判斷竟然這樣就被消滅了

說明,提供思路的一篇文章招來這麼多非議,為何啊?羅嗦話不多說,先看下面一段簡單的不能再簡單的null值判斷 public void dosomething string message 方法體的每個引數都將用if語句進行檢查,並逐個丟擲argumentnullexception的異常。關注我的朋友,...

c 判斷 值 是否為NUll

1 null null 關鍵字是表示不引用任何物件的空引用的文字值。null 是引用型別變數的預設值。那麼也只有引用型的變數可以為null,如果int i null,的話,是不可以的,因為int是值型別的。判斷 值 是否為null.html target self c 允許使用 或!來判斷是否為nu...