適用情況:
(1) 函數的返回類型是一個結構體(如StructA),而這個返回值有可能爲空。
此時不能直接返回null或者0,否則編譯器會報錯:無法將null或者0隱式轉成結構體StructA,因爲它不是一種可以爲null值的類型。
- public struct StructA
- {
- }
- public StructA GetStruct()
- {
- if()
- {
- return null;
- }
- else
- {
- StructA a;
- return a;
- }
- }
解決辦法是在網上找到的,應該還有別的方法
- public structA? GetStruct()
- {}
即在返回類型後面加“?”
原因:加一個問號表示一個可空對象,相當於Nullable<StructA>類型。(2) 對返回值進行判斷:
- structA? a = GetStruct();
- if (a!=null)
- {
- }
- else
- {
- //返回的結構體爲空
- }