68得票15回答
VS Code CSC:错误 CS1617:/langversion 的选项“7.3”无效。

我下载了VS 2017 15.7、.NET Core 2.1.2和Blazor来尝试一下。但是在VS 2017中无法正常工作,所以我想尝试使用dotnet cli和VS Code。但是我遇到了以下错误: CSC : error CS1617: Invalid option '7.3' for...

64得票2回答
C# 7.3 枚举约束:为什么我不能使用可空枚举?

现在我们有枚举约束,为什么编译器不允许我编写这段代码? public static TResult? ToEnum<TResult>(this String value, TResult? defaultValue) where TResult : Enum { ...

28得票1回答
C# 7.3 枚举约束:为什么不能使用枚举关键字?

为了将一个通用类型参数限制为枚举类型,我以前会像这样进行约束,这是在 C# 7.3 之前限制枚举类型 T 的最佳方法: void DoSomething<T>() where T : struct, IComparable, IConvertible, IFormattable ...

25得票4回答
平等和多态性

有两个不可变的类Base和Derived(派生自Base),我想定义相等性,使得: 相等性始终是多态的 - 也就是说,((Base)derived1).Equals((Base)derived2)将调用Derived.Equals 操作符==和!=将调用Equals而不是Reference...

15得票1回答
为什么在C# 7.3中,受“Enum”约束的泛型类型无法作为“struct”合格?

如果我有一个带有像这样的struct约束的通用接口: public interface IStruct<T> where T : struct { } 我可以像这样为我的类型T提供枚举,因为enum满足struct约束: public class EnumIsAStruct...

15得票1回答
解构是一个含义模糊的概念,特别是在IT技术领域。

我有一个向量类,其中包括以下两种析构方法:public readonly struct Vector2 { public readonly double X, Y; ... public void Deconstruct( out double x, out dou...

14得票1回答
一个包含ValueTuple的结构体是如何满足unmanaged约束条件的,但ValueTuple本身却不能满足呢?

考虑以下类型: (int, int) → 托管。 struct MyStruct { public (int,int) Value; } → 非托管! 问题:一个非泛型结构体MyStruct,它有一个托管成员(int,int),被评估为托管类型。 期望行为:包含托管成员的结构应该被视...

13得票2回答
如何在C#中检查类型是否符合非托管约束?

我该如何检查类型 T 是否符合 unmanaged 类型约束,以便在这样的上下文中使用: class Foo<T> where T : unmanaged?我的第一个想法是 typeof(T).IsUnmanaged 或类似的东西,但那不是 Type 类的属性/字段。

12得票1回答
Main()函数之前调用了隐式静态构造函数。

我有以下这段代码。class Program { static void Main(string[] args) { Enterprise.Initialize("Awesome Company"); // Assertion...

10得票1回答
为什么在C#中,一个完整的属性只有getter可以被重写,但仍然可以被设置?

我发现了一个让我感到惊讶的行为。给定以下两个类: class Parent { public virtual bool Property { get; set; } } class Child : Parent { public override bool Property...