-->

C#语法求教

2020-09-25 08:59发布

问题:

写法一:
var result = _cache.Exists(key) ? await func1(cacheKey) : await func2(uid);

写法二:

var result = await (_cache.Exists(key) ? func1(cacheKey) : func2(uid));

以上编译通过,一样吗?

回答1:

// 写法一:
if(_cache.Exists(key))
    await func1(cacheKey);
else
    await func2(uid);

// 写法二:
Task task;
if(_cache.Exists(key))
    task = func1(cacheKey);
else
    task = func2(uid);
await task;

看起来没有区别



回答2:

_cache.Exists 如果這個不是異步方法
執行流程會是一樣的



回答3:

应该是一样的



标签: