iT邦幫忙

0

paramD?.id .id屬性前面的?是null的意思嗎?

c#

我有一個類別,想請問一下paramD?.id裏的?是有什麼作用,謝謝
public class test
{
public Guid id { get; set; }
}

public object Get([FromBody] test paramD)
{
using (Abc objs = new Abc())
{
Guid? id = paramD?.id;
}
}

powerc iT邦新手 4 級 ‧ 2021-12-03 09:43:35 檢舉
相當於 if (paramD == null) return null; else return paramD.id;

2 個回答

2
緯大啊緯大人
iT邦新手 1 級 ‧ 2021-12-03 14:51:28
最佳解答

你的範例:

Guid? id = paramD?.id;

因paramD可能NULL,這樣的寫法,可以讓他為NULL時,不去做取id的動作,將NULL值直接派給等號左方之id。
若paramD為有值的狀態,就會真的取id出來再派給等號左方之id


假設你寫沒有問號的寫法

Guid? id = paramD.id

當paramD為NULL時,你這裡就會報錯,出現Exception囉~

Jason iT邦新手 5 級 ‧ 2021-12-03 15:10:05 檢舉

感謝

2
qaz11226633
iT邦新手 5 級 ‧ 2021-12-03 09:41:16

如果是在 宣告類別使用

Public Guid? id 

代表 id這個屬性可以為NULL

如果是在變數使用

paramD?.id

代表paramD可能是NULL

我要發表回答

立即登入回答