标签:c#-8.0
-
C#8是否支持.NET Framework? - c#
在Visual Studio 2019 Advanced Build设置中,C#8似乎不适用于.NET Framework项目,仅适用于.NET Core 3.0项目(如下图所示): C#8是否支持.NET Framework? 参考方案 是的,C#8可以与.NET Framework和Visual Studio 2019中的.NET Core 3.0 / […]
-
开关表达式C#8中的多个语句 - c#
开关表达式是C#8中引入的。代码库中有很多地方,可以用新样式重写。 因此,我有一些代码,用于解析字节流中的数据包: switch (command) { case Command.C1: return new P1(); case Command.C2: return new P2(); default: stream.Position++; return […]
-
C#不能使`notnull`类型为可空 - c#
我正在尝试创建类似于Rust的Result或Haskell的Either的类型,到目前为止,我已经做到了: public struct Result<TResult, TError> where TResult : notnull where TError : notnull { private readonly OneOf<TResult […]
-
如何调用默认方法而不是具体实现 - c#
为什么在C#8中更改了默认接口方法的行为?过去,以下代码(当未发布默认接口方法的演示时): interface IDefaultInterfaceMethod { // By default, this method will be virtual, and the virtual keyword can be here used! virtual void […]
-
C#8“默认”是什么?对泛型类型做什么? - c#
只是使用C#8.0 Beta并更新我的一些代码以使用可为空的引用类型。 我有一个Trie实现的节点样式类。每个节点都有一个T类型的值。根节点的构造函数不需要值,因此我将其设置为default。 这是一个简短的版本: public class Trie<T> { public readonly bool caseSensitive; public […]
-
C#8.0,NET Core 3.0和Visual Studio之间的关系 - c#
文章Building C# 8.0指出 目前的计划是C#8.0将与.NET Core 3.0同时发布。但是,随着我们正在研究的Visual Studio 2019的预览功能将开始变得生动起来。 C#8.0,NET Core 3.0和Visual Studio之间是什么关系? 作为后续,我也对物理部署方面的新语言版本实际上感到困惑。是将新程序集部署为新的Vis […]
-
在将泛型引用类型与泛型类型一起使用时收到警告 - c#
我有一个类似于以下的泛型类型,它带有一个名为ExecuteAsync()的方法,该方法可以返回一个对象或null: public interface IStoredProcedure<Result, Schema> where Result : IBaseEntity where Schema : IBaseSchema { Task<Re […]
-
C#8开关表达式:找不到用于开关表达式的最佳类型 - c#
我在启动类(.net core 3.1)中添加了代码,以根据参数返回类型,并且出现编译时错误。 我在sharplab中创建了一个正在运行的示例。如果switch表达式包含字符串或其他对象,则运行良好。 工作示例1: var x = key switch { "myhandler1" => "something", […]
-
可以将外部功能用作可空防护吗? - c#
C#8引入了可为空的引用类型,这是一个非常酷的功能。现在,如果您希望获取可为空的值,则必须编写所谓的警卫: object? value = null; if (value is null) { throw new ArgumentNullException(); } … 这些可能是重复的。我想知道的是,是否有可能避免为每个变量编写这种类型的代码,而是有一个防 […]