小编Hea*_*eap的帖子

Signalr .net核心客户端中的异步处理程序

用于Signalr的.NET核心客户端具有HubConnection可按以下方式使用的类。

HubConnection connection = new HubConnectionBuilder()
            .WithUrl("https://localhost:44321/hub")
            .Build();

await connection.StartAsync();

connection.On<SomeEvent>("HubMethodName", (ev) => Console.WriteLine("EventHandler"))
Run Code Online (Sandbox Code Playgroud)

我想在事件处理程序中进行一些异步工作,但是对我来说,如何立即执行并不太明显,因为大多数重载都期望an Action。使用async void作品,但我不确定这是一个好主意。另外,签名有一个过载,On(string methodName, Type[] parameters, Func<object[], Task>) handler)这是有希望的,但是我想我会期望带有的过载On<T>(string methodName, Func<T, Task> handler)。我可以自己创建带有该签名的扩展方法,但是当它不存在时,我想我可能已经错过了一些重要的事情吗?

signalr.client

5
推荐指数
1
解决办法
229
查看次数

C#,在设计基本颜色类时正确使用static关键字

我正在制作一个Color类,并提供一个标准的构造函数

Color(int red, int green, int blue)
Run Code Online (Sandbox Code Playgroud)

然后我想提供一种简单的方法来获得最常见的颜色,如Color.Blue,Color.Red.我看到两种可能的选择:

public static readonly Color Red = new Color(255, 0, 0);

public static Color Red { get { return new Color(255, 0, 0); } }
Run Code Online (Sandbox Code Playgroud)

我不完全理解的是,如果有一个优势,而不是静态关键字的工作原理.我的想法是:第一个创建一个实例,然后该实例在程序的整个持续时间内保留在内存中,并且每次调用Red时,都会使用此实例.后者仅在首次使用时创建一些内容,但每次都会创建一个新实例.如果这是正确的,那么我认为如果我提供了很多预定义的颜色,那么第一个会使用大量不必要的内存吗?因此,每次我猜测它是内存使用量与实例化对象的运行时开销.

我的推理是否正确?在设计类和使用static关键字时,对最佳实践的任何建议都会很棒.

c# static

3
推荐指数
1
解决办法
2470
查看次数

标签 统计

c# ×1

signalr.client ×1

static ×1