私のwinformアプリケーションでは、プロジェクト全体でタイムスタンプ値からDateTimeオブジェクトに変換する必要があります。だから、これは私がやったことです:Winform(C#)でグローバル関数を使用中にCS0120エラーが発生しました
public class UnixTool {
public DateTime Unix2Time(Int64 timeStamp, TimeZoneInfo LocalTimeZone) {
return TimeZoneInfo.ConvertTimeFromUtc(baseTime.AddSeconds(timeStamp), LocalTimeZone);
}
public Int64 Time2Unix(DateTime dateTime, TimeZoneInfo LocalTimeZone) {
return (Int64)(TimeZoneInfo.ConvertTimeToUtc(dateTime, LocalTimeZone).Subtract(baseTime).TotalSeconds);
}
}
そして、他のクラスでは、私のようなUnix2Time
メソッドを使用しようとしました:
DateTime dt = UnixTool.Unix2Time(localTimeStampValue, localTimeZone);
しかし、それはエラーが発生しました:
CS0120:オブジェクト参照非静的フィールド、メソッド、またはプロパティに必要です。 'UnixTools.Unix2Time(long、TimeZoneInfo)'
私はこの問題を解決するのですか?私のプログラムで何が原因なのですか?
staticとして関数を宣言する – BugFinder
これらのメソッドを 'static'宣言する必要があります。 'public static DateTime Unix2Time'と' public static Int64 Time2Unix' –
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/extension-methods – mjwills