相关疑难解决方法(0)

问号和点运算符是什么?在C#6.0中意味着什么?

在VS2015预览版中使用C#6.0,我们有一个新的运算符,?.可以像这样使用:

public class A {
   string PropertyOfA { get; set; }
}

...

var a = new A();
var foo = "bar";
if(a?.PropertyOfA != foo) {
   //somecode
}
Run Code Online (Sandbox Code Playgroud)

它到底是做什么用的?

c# operators c#-6.0

309
推荐指数
3
解决办法
18万
查看次数

.NET 编译器是否允许优化 `bool result = someMethod() || true` 到 `bool 结果 = true`?

根据文档我明白

bool result = someMethod() || true;
Run Code Online (Sandbox Code Playgroud)

.NET 编译器无法优化

bool result = true; // (or actually inlined)
Run Code Online (Sandbox Code Playgroud)

换句话说,我的理解是someMethod()总是被执行。

那是对的吗?我只是在寻找确认。

.net c#

2
推荐指数
2
解决办法
132
查看次数

在if语句中,如果其中一个部分被分隔或返回true,它会继续声明吗?

如果我将if语句分隔为||返回true,它会继续声明吗?

例如:if(true || random()),将random()被执行?因为没有理由这样做.

c# if-statement

1
推荐指数
1
解决办法
45
查看次数

我可以将对象的空值检查作为OR语句中的另一个条件吗?

可能重复:
在.NET中依赖&&短路安全吗?

我不确定如何正确地标出问题的标题,但用一行代码解释起来非常简单:

if (someObject == null || someObject.someProperty)
    ...
Run Code Online (Sandbox Code Playgroud)

我能这样做吗?或者这一个:

if (someObject != null && someObject.someProperty)
    ...
Run Code Online (Sandbox Code Playgroud)

c# null-check

0
推荐指数
1
解决办法
121
查看次数

第一次错误后返回结果的验证方法

第一次错误验证后返回结果的最佳方法是什么?我想实现相同的功能,而无需在每次验证后检查结果。

bool ValidateMany()
{
  bool result=true;

  if(ValidateFirstProperty){
  result = ValidateFirst();
  if(result == false)
    return result;
  }

  if(ValidateSecondProperty){
  result=ValidateSecond();
  if(result == false)
    return result;
  }

  //always validate third one
  result=ValidateThird();
  if(result == false)
    return result;

return result;
}
Run Code Online (Sandbox Code Playgroud)

c#

-4
推荐指数
1
解决办法
97
查看次数

标签 统计

c# ×5

.net ×1

c#-6.0 ×1

if-statement ×1

null-check ×1

operators ×1