返回值爲結構體,返回值可能爲空時候的處理情況

適用情況:

(1) 函數的返回類型是一個結構體(如StructA),而這個返回值有可能爲空。

此時不能直接返回null或者0,否則編譯器會報錯:無法將null或者0隱式轉成結構體StructA,因爲它不是一種可以爲null值的類型。

[csharp] view plain copy
  1. public struct StructA  
  2. {  
  3. }  
  4.   
  5. public StructA GetStruct()  
  6. {  
  7.     if()  
  8.     {  
  9.         return null;  
  10.     }  
  11.     else  
  12.     {  
  13.         StructA a;  
  14.         return a;  
  15.     }  
  16. }  

解決辦法是在網上找到的,應該還有別的方法

[csharp] view plain copy
  1. public structA? GetStruct()  
  2. {}  

即在返回類型後面加“?”

原因:加一個問號表示一個可空對象,相當於Nullable<StructA>類型。

(2) 對返回值進行判斷:

[csharp] view plain copy
  1. structA? a = GetStruct();  
  2. if (a!=null)  
  3. {  
  4. }  
  5. else  
  6. {  
  7. //返回的結構體爲空  
  8. }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章