c# - Why the ternary operator is not working this way? -
why not compile? wrong in following code?
(_dbcontext == null) ? return _dbcontext = new productandcategoryentities() : return _dbcontext;
if restate in terms of if compiles:
if (_dbcontext == null) return _dbcontext = new productandcategoryentities(); else return _dbcontext;
the things on either side of :
in conditional expression expressions, not statements. must evaluate value. return (anything)
statement rather expression (you can't x = return _dbcontext;
, example), doesn't work there.
new productandcategoryentities()
, _dbcontext
both seem expressions, though. can move return
outside of conditional expression.
return (_dbcontext == null) ? (_dbcontext = new productandcategoryentities()) : _dbcontext;
although, in case, it'd better lose ?:
, go straight if
.
if (_dbcontext == null) _dbcontext = new productandcategoryentities(); return _dbcontext;
which bit more straightforward. returning value of assignment looks bit sketchy.
Comments
Post a Comment