我有以下代码片段:
// Notify the source (the other control).
if (operation != DropOperation.Reorder) {
e = new DroppedEventArgs()
{
Operation = operation == DropOperation.MoveToHere ? DropOperation.MoveFromHere : DropOperation.CopyFromHere,
Source = src,
Target = this,
DroppedItems = srcItems
};
src.OnDropped(e);
}
我不明白
操作 = 操作 == DropOperation.MoveToHere ? DropOperation.MoveFromHere :DropOperation.CopyFromHere
行。
谁能解释一下?为了记录...... dropOperation 是一个枚举。 你能给我 vb 语法等价物吗?
赛斯
最佳答案
之所以难以理解是因为您不熟悉三元运算符?:。基本上它所做的是评估一个表达式,并根据评估返回的是 true 还是 false 返回两个值之一。
例如,如果 bool 值为真,则以下表达式将返回“真”,否则返回“假”:
bool test = false;
string testString = test ? "true" : "false";
它实际上也存在于 VB.NET 中 - 虽然表达方式略有不同。这两个分别在C#和VB.NET中的语句其实是一样的
Dim s As String = If(True, "kek", "lol")
string s = true ? "kek" : "lol";
IIf 和三元运算符之间的区别在于,IIf 将始终计算第二个和第三个参数,因为 IIf 是函数而不是运算符。出于这个原因,三元运算符更受欢迎。
注意:三元运算符是在 VB 9 中添加的,因此如果您使用的是以前的版本,则必须依赖 IIF 函数才能实现此功能。
关于c# - 请向 vb-er 解释 C# 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1412979/