gpt4 book ai didi

c# - 在 C# 中定义接口(interface)时, 'in' 和 '@' 关键字有什么作用?

转载 作者:太空宇宙 更新时间:2023-11-03 17:32:21 25 4
gpt4 key购买 nike

给定以下接口(interface)声明:

声明A

public interface EventHandler<T>
{
void Handle(T command);
}

声明B

public interface EventHandler<in T>
{
void Handle(T @event);
}

在正常测试中,这些都做同样的事情。 Handle 方法按预期调用。

以上内容有何不同,它们在其他情况下的行为有何不同?

最佳答案

in 将泛型类型参数指定为逆变:in (Generic Modifier) (C# Reference) .还有out for covariant .

@ 允许您使用已注册的关键字作为标识符:

Keywords are predefined, reserved identifiers that have special meanings to the compiler. They cannot be used as identifiers in your program unless they include @ as a prefix. For example, @if is a valid identifier but if is not because if is a keyword.

来源:C# Keywords

关于c# - 在 C# 中定义接口(interface)时, 'in' 和 '@' 关键字有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16125410/

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