我看到一些代码说

public int MaxHealth => 
         Memory[Address].IsValid ? 
         Memory[Address].Read<int>(Offs.Life.MaxHp) : 
         0;

现在我对Lambda表达式有点熟悉了。我只是没见过它这样使用。

上述陈述和两者之间的区别是什么

public int MaxHealth  = x ? y:z;

6.0版获得了nameof的新功能,但我不能理解它的目的,因为它只是接受变量名并在编译时将其更改为字符串。

我认为它在使用<T>时可能有一些目的,但当我尝试命名(T)时,它只是打印我一个T而不是使用的类型。

知道目的吗?

在VS2015预览版的c# 6.0中,我们有了一个新的操作符?,可以这样使用:

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

...

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

它到底是做什么的?

我很困惑为什么这段代码不能编译:

var result = $"{fieldName}{isDescending ? " desc" : string.Empty}";

如果我把它分开,它可以正常工作:

var desc = isDescending ? " desc" : string.Empty;
var result = $"{fieldName}{desc}";