Nem kötelező argumentumok megadása a struktúraargumentumaihoz

Oldal létrehozásának dátuma :

A választható argumentumok lehetővé teszik, hogy egy argumentumnak kezdeti értéket adjon anélkül, hogy túlterhelne egy metódust különböző számú argumentummal.

Azonban csak a "10", "Minta" és "null" állandók adhatók meg választható argumentumként, és nem adható meg olyan érték, amelyet újként hoztak létre, vagy amelyet statikus írásvédettként hoztak létre, és amelyet a program futtatásakor határoz meg.

Ugyanez igaz, ha a szerkezet egy érv. Ha például a típus IntPtr, nem adhatja meg az IntPtr.Zero értéket kezdeti értékként. Nem adhat meg 0 értéket, és nem lehet null, mert szerkezet. (A Nullable lehetővé teszi a null megadását, de nem számít, mert az argumentum típusa megváltozik.)

Az "default(T) segítségével a struktúrát választható argumentumként használhatja.) Ez megegyezik az új T() értékkel létrehozott értékkel.

public void DoAction(IntPtr handle = default(IntPtr))
{
  // 処理
}

A struktúra minden értékéhez csak 0 vagy null értéket adhat meg, ezért túlterhelheti a metódust, ha külön-külön szeretne megadni a kezdeti értéket.