嘿,我有一堂課,我想給它添加靜態欄位。我想在代碼塊中確定該欄位的值,如下所示:
public class MyClass
...
public static DateTime Date
{
int year = 2022;
int month = 1;
int day = 31;
Date = new DateTime(year, month, day);
}
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
您還可以使用靜態建構式:https ://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/static-constructors
uj5u.com熱心網友回復:
有點不清楚你想要做什么,但如果你想要一個帶有硬編碼值的靜態屬性,這是一種方法:
public class MyClass {
public static DateTime Date => new DateTime(2022, 1, 31);
}
uj5u.com熱心網友回復:
靜態欄位不屬于型別的實體,而是屬于型別本身(可以這么說),因此您不能使用實體成員來初始化靜態欄位。
如果要初始化您提到的欄位并隱藏用于初始化它的其他欄位,您可以執行以下操作:
public class MyClass
{
public static MyDate Date = new MyDate(2022, 1, 31);
}
public class MyDate
{
public MyDate(int year, int month, int day)
{
Date = new DateTime(year, month, day);
}
public DateTime Date { get; }
}
我在這里創建了單獨的類來表示“我的日期”和我想要在建構式中的“初始化欄位”,所以沒有人可以訪問或查看它們。
但是您不需要這樣做,您可以只定義一個靜態屬性DateTime并從 type 中的靜態建構式傳遞初始化值MyClass。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/470024.html
標籤:C#
