banner
Matrix

Matrix

Abyss
email
github

ペティCSharp - .?

.?演算子は、null オブジェクトを安全に処理するメカニズムであり、空のポインタ例外を回避するためのものであり、TypeScript や Swift などに類似したメカニズムがあります。

.?を使用すると、アクセスしようとするオブジェクトが null の場合、式全体が null となり例外がスローされず、それ以外の場合は通常通りアクセスされます。

#

public class Person
{
    public string Name { get; set; }
    public Address Address { get; set; }
}

public class Address
{
    public string City { get; set; }
    public string Street { get; set; }
}

安全なアクセスが必要な場合:

string city = person?.Address?.City;

この場合、person または person.Address が null の場合、式全体が null を返し、それ以外の場合は person.Address.City の値を返します。これにより、person または person.Address が null の場合に、直接 person.Address.City にアクセスすることによって発生する NullReferenceException が回避されます。

一般的な使用例#

  • メソッドの呼び出し:
person.PrintName();
  • イベント処理
person?.OnNameChanged?.Invoke(this, EventArgs.Empty);

//todo イベント処理

  • 要素へのアクセス
string firstAddress = address?[0]?.City;

// todo ?

  • ??と組み合わせてデフォルト値を提供する
string city = person?.Address?.City ?? "Unknown";

// todo ??

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。