小编Joh*_*ica的帖子

哪里首选静态类?

为什么我们使用静态类?作为新手我明白

(如果我错了,请纠正我。)

  • 我们不必创建类的实例并按名称使用数据成员和方法。
  • 任何其他类都不能继承它
  • 我们只有静态方法和静态数据成员

在普通班的时候

  • 我们也可以有静态成员和静态方法。
  • 并用班级名称称呼他们

那么为什么首选静态类呢?或首选静态类?

c# asp.net asp.net-mvc class static-classes

0
推荐指数
1
解决办法
162
查看次数

如何仅显示月份,不包括日和年

如何在 Angular 中创建一个月份日期选择器,不包括隐藏日期和年份?

此以下链接将执行月份和年份选择器。我试图操纵它只做 Month Only。如何配置?

闪电战:

https://stackblitz.com/angular/gxymgjpprdy?file=src%2Fapp%2Fdatepicker-views-selection-example.ts

结果应该是这样的,发出的值可以是例如 May:a) 5 或 b) 2020 年 5 月 1 日。我可以删除 Day 和 year later 。

在此处输入图片说明

资源:Angular Material DatePicker:月和日,不包括年

typescript angular-material angular angular-material-datetimepicker angular8

0
推荐指数
1
解决办法
4367
查看次数

AddSingleton(S, T) 代替 AddSingleton(T) 的好处

使用services.AddSingleton<SomeService, SomeServiceImplementation>()而不是有services.AddSingleton<SomeServiceImplementation>()什么好处?

例如我有一个示例界面

interface ISampleInterface
{
   void DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

和一个样本类:

class SampleClass : ISampleInterface
{
  public void DoSomething()
  {
    console.write("hi");
  }
}
Run Code Online (Sandbox Code Playgroud)

不,我做 services.AddSingleton<SampleClass>()

为什么或何时使用services.AddSingleton<ISampleInterface, SampleClass>()

谢谢你的帮助!:-)

c# asp.net-core blazor

0
推荐指数
1
解决办法
79
查看次数

如何最好地并行运行两个异步任务并等待两者的返回结果?

我正在寻找满足以下要求的模式的简单 C# 示例:

  1. 我想异步执行 2 个方法,在不等待第一个完成的情况下启动第二个方法。
  2. 每个方法都接受一个参数并返回和输出值。
  3. 然后我想在继续之前等待两者的结果。

这似乎是我可以轻松使用 async 和 await 关键字的场景,但是在查看了几个 Hello World 示例后,我很惊讶我无法轻松地同时满足上述所有条件。例如,虽然使用 await 关键字使我的 UI 不会阻塞并允许我的应用程序在我等待方法完成时继续响应事件,但这些方法仍在同步执行。或者,如果我能够异步执行,我在尝试将输入参数传递给调用方法并接收返回结果时遇到了麻烦。

以下内容似乎符合我的要求,并让我相信我可以充分利用它,但首先我想得到您关于如何改进它的反馈。

我之前玩过 Threads 并发现它使我的代码变得更加复杂,并期望“async 和 await”关键字会让我的生活更轻松,但以下似乎满足我要求的代码甚至没有使用这些关键字。我在这里使用“并行任务库”吗?如果是这样,您将如何将此库中的功能与 async 和 await 功能进行对比?

using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;

namespace ASyncCourse
{
    static class Program
    {
        static void Main()
        {
            int result1 = 0;
            int result2 = 0;

            Stopwatch stopWatch = new Stopwatch();
            stopWatch.Start();

            Task task1 = Task.Run(() => result1 = DoSomeWork(1));
            Debug.WriteLine($"After Task1: {stopWatch.Elapsed}");

            Task task2 = Task.Run(() => result2 = DoSomeOtherWork(10)); …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous async-await

0
推荐指数
1
解决办法
591
查看次数

当值是列表时,插入键值对的第一个值

我有一个字典如下,其中键是一个字符串,值是一个双精度列表:

Dictionary<string, List<double>> dataStore = new Dictionary<string, List<double>>();
List<string> channel_names = new List<string>(); // contains the keys
Run Code Online (Sandbox Code Playgroud)

现在,当我想向此字典添加数据时,我会这样做:

if (dataStore.ContainsKey(channel_names[j]))
{
    dataStore[channel_names[j]].Add(measurement);
}
                            
else
{
    dataStore.Add(channel_names[j], new List<double>((int)measurement));
}
Run Code Online (Sandbox Code Playgroud)

第一个语句(添加到现有的键)工作正常,但第二个语句有问题,即当我试图用列表中的第一个双精度初始化键时。第一次测量被遗漏了。任何人都可以请建议为什么?

谢谢

c# dictionary initialization list

0
推荐指数
1
解决办法
70
查看次数

有没有办法将相同类型的参数分组,使代码整洁?

假设我有这个方法:

public void UpdateEmployee ( String empFirst, String empLast, String empAddress, 
String empType, String empPhoneNo, String empSalary, DateTime? dob, String empDepartment)

Run Code Online (Sandbox Code Playgroud)

有没有办法不在参数中一直重复 String 类型?

谢谢

c#

0
推荐指数
1
解决办法
87
查看次数

如何在 unity c# 中切换?

我正在尝试使用切换按钮切换标签以进行更改,但我无法弄清楚。对于代码 1,它根本不会更改为值,而对于代码 2,它会在一瞬间发生变化。我不知道如何让它切换并保持切换。谁能帮我解决这个问题

代码 1

 bool isActive = false;
        public void OnGUI() {


            

            if (Input.GetKeyDown("insert"))
            { 
                isActive = !isActive;
            }
            
            if (isActive == true)
            {
                GUI.Label(new Rect(0, 0, 500, 500), "on");
            }
            else
            {
                GUI.Label(new Rect(0, 0, 500, 500), "off");
            }
Run Code Online (Sandbox Code Playgroud)

代码 1 的结果 按下插入,它不会改变

代码 2

 public void OnGUI() {


            bool isActive = false;

            if (Input.GetKeyDown("insert"))
            { 
                isActive = !isActive;
            }
            
            if (isActive == true)
            {
                GUI.Label(new Rect(0, 0, 500, 500), "on");
            }
            else
            {
                GUI.Label(new Rect(0, 0, 500, 500), "off");
            } 
Run Code Online (Sandbox Code Playgroud)

代码 2 的结果

c# unity-game-engine

0
推荐指数
1
解决办法
55
查看次数

如何根据多个关键字拆分字符串?

我有一个字符串,其中的字符串值由特殊字符“;”分隔 我需要拆分字符串并将每个值存储在单独的字符串中。在我的 ipStr 中,像 ServerName、DBName、TableNames 和 ColumnNames 这样的关键字是标识符,它不会改变,只有值可能会改变。

例如。

string ipStr = "ServerName=DevTestServer;DBName=CustomerSummary;TableNames=CustomerDetails&OrderDetails;ColumnNames=ID,CustName,OrderID;"
Run Code Online (Sandbox Code Playgroud)

现在我想分别拆分 ServerName、DBName、TableNames 和 ColumnNames 值,并将每个值存储在不同的字符串中。我在下面尝试过,但在找到 ServerName 后,识别 DBName 部分看起来很困难,而且它看起来也不像是正确的编码方式。

string ServerIdentifier = "ServerName=";
string separator = ";";
string serverName = ipStr.Substring(ipStr.IndexOf(ServerIdentifier), ipStr.IndexOf(delimiter));
Run Code Online (Sandbox Code Playgroud)

从 ipStr 获取如下值的最简单方法是什么?

string ServerName="DevTestServer";
string DBName="CustomerSummary";
string TableNames="CustomerDetails&OrderDetails";
string ColumnNames="ID,CustName,OrderID";
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
278
查看次数

有没有一种方法可以在控制台中获取输入而无需按 Enter 键?

我希望能够从控制台获取单个字符,而不必按回车键。

例如,当我按下字母“e”时,我想立即使用该值,而无需用户按回车键

c#

0
推荐指数
1
解决办法
699
查看次数

如何允许异步任务运行给定的秒数?

所以我创建了一个任务处理程序。我想让它运行一段预定的保证时间,然后我想做一些我的事情,只有这样我才需要等待处理程序的结果。就像是:

var th = TaskCreator();
th.awaitFor(5000);
//do some work
var result = await th;
Run Code Online (Sandbox Code Playgroud)

那么异步任务如何运行给定的秒数呢?

c# task async-await

0
推荐指数
2
解决办法
514
查看次数