1

次のようなプライベートクラスがあります。

private class PocoUserWithResourceId
{
    public USER User;
    public string ResourceId;
}

私はこのクラスで(同じカプセル化パブリッククラス内で)次のようなことを行います:

var uQuery = from u in db.USERS.All()
select new PocoUserWithResourceId {User = u, ResourceId = arv.Resource_Id};

そして、私は警告を受けています:

フィールド 'PocoUserWithResourceId.ResourceId' は割り当てられず、常にデフォルト値が null になります

私は何が欠けていますか?LINQ to SQL コードで値を割り当てています。

4

2 に答える 2

4

コンパイラがプロパティ値を使用しているという事実を認識していないのは、宣言中にプロパティ値を割り当てているからですか?

いいえ、それはプロパティ値ではなくフィールド値を割り当てているからです...

2 つのグッド プラクティスから選択できます。
- コンストラクターを使用する
- アクセサー (プロパティ) を使用する

于 2012-10-30T09:02:46.317 に答える
0

#pragma を使用して、特定のケースの警告を一時的に無効にすることができます

// turn it off
#pragma warning disable 0649
private class Foo
{
   public string FieldName
}
// turn it back on
#pragma warning restore 0649

エラー番号を確認するには、生の出力を調べるか、警告を右クリックして [エラー ヘルプの表示] を選択します。ページ自体は警告とは関係ありませんが、エラーは URL (CS0649) に埋め込まれています。

于 2015-12-16T18:56:04.363 に答える