gpt4 book ai didi

c# - 请向 vb-er 解释 C# 语法

转载 作者:行者123 更新时间:2023-11-30 18:48:22 25 4
gpt4 key购买 nike

我有以下代码片段:

        // 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com