[解決済み] new Guid() が 00000000-0000-0000-0000-0000-00000000 であるときとないときがあります。[重複している]。
2022-02-17 10:32:58
質問
<余談
この質問には、すでにここで回答があります
:
クローズド
7ヶ月前
.
大きなログのC#ファイルを発見しました。クライアントから、一部のSessionIdsが00000000-0000-0000-0000-0000-00000000であるとクレームがありました。 第一の方法
public static StartServiceLog CreateStartServiceLog(string serviceName, Guid sessionId = new Guid(), Device device = null, string userId = null)
{
if (device == null)
{
device = CreateDeviceInfo();
}
return new StartServiceLog(device, DateTime.UtcNow, sessionId, userId, new List<string>() { serviceName });
}
このメソッドを呼び出す
var session = new StartSessionLog
{
Sid = sessionId,
Device = device,
Timestamp = DateTime.UtcNow,
};
return session;
SessionIdsがすべてゼロになるか、上書きされるかを知るには?
どのように解決するのですか?
System.Guid
は構造体であり、クラスではありません。つまり、そのパラメータなしのコンストラクタは何の仕事もできない、ということです。
new Guid() == default
.
構造体のデフォルト値は、すべてのメンバがデフォルト値に設定されています。の場合は
Guid
これは数字の集まりなので、視覚的にはすべてゼロになります。
を作成するには
Guid
を実際の値で呼び出す必要があります。
Guid.NewGuid()
静的メソッドです。これはデフォルトのパラメータ・イニシャライザの中ではできないので、メソッドを変更して
nullable
Guid?
の代わりに
public static void Foo(string etcetera, Guid? sessionId = null)
{
if (sessionId == null)
{
sessionId = Guid.NewGuid();
}
// Do something with `sessionId.Value`
}
関連
-
[解決済み] [Solved] 1つ以上のエンティティで検証に失敗しました。詳細は'EntityValidationErrors'プロパティを参照してください [重複]。
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み] 関数を終了するには?
-
[解決済み】別のスレッドがこのオブジェクトを所有しているため、呼び出し側のスレッドはこのオブジェクトにアクセスできない
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] Guid.NewGuid() vs. new Guid()
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ここで「要求URIに一致するHTTPリソースが見つかりませんでした」となるのはなぜですか?
-
[解決済み】WPFでXamlファイルにコメントを追加する方法は?
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み] EntityTypeにキーが定義されていないエラー
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
[解決済み】「namespace」なのに「type」のように使われる。
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
[解決済み] Guid.NewGuid() vs. new Guid()