したがって、私はreading an article at the momentであり、私はそれに質問する原因となったいくつかのコードに出くわしました。プロパティでnull-coalescing演算子を取得する
コードは次のようになります。私には
private UserService _userService = null;
protected UserService UserService
{
get { return _userService ?? Request.GetOwinContext().GetUserManager<UserService>(); }
}
、それは私有財産は常にnullになりますように見えますので、ヌル・合体演算子を使用することは無意味です。 私はそれがこれを行うなどとして有用であると想像します:
protected UserService UserService
{
get { return Request.GetOwinContext().GetUserManager<UserService>(); }
}
私は何かが足りないのですか?そして、我々は、被写体にありながら、なぜこのん:
private UserService _userService = null;
確かにそれは
private UserService _userService;
と同じであり、私は私の疑念を明確に助けてください:D
「get {return _userService ??」と書くのが一般的なパターンです。 _userService = Request.GetOwinContext()。GetUserManager(); } '。おそらくそれはタイプミスでしたか? –
Rob
おそらくアイデアは、ユーザーがコードのどこかに '_userService'を設定させ、もし彼がアイデンティティからそれを取得していなければ、その値を返したのかどうかということです。 'GetUserManager()'はコンテキストごとに同じオブジェクトを返す可能性もあります。サービスインスタンスは常に同じで、フィールドに格納する特別な理由はありません。 –
Fabjan
それを保存する理由がない場合は、私の提案した解決策(コンテキストから戻す)が正しいのではないでしょうか? – r3plica