我創建了一個控制臺應用程式.NET 6.0來學習單例模式。但我觀察到Program.cs檔案發生了重大變化。
namespace,class和Main方法已從program.csin 中洗掉.NET 6.0。
我相信將寫入的代碼program.cs將被視為Main方法內。但是我想創建兩個使用全域初始化實體的靜態方法,但我無法做到這一點。
通過宣告如下實體:

它給出了編譯錯誤:
CS0106 修飾符“靜態”對該專案無效
在靜態方法中使用實體時,如下所示:

它給出了編譯錯誤:
CS8421:靜態本地函式不能包含對“tableservers1”的參考。
這是所有的代碼program.cs:
using SingletonApp;
static TableServers tableservers1 = TableServers.GetInstance();
static TableServers tableservers2 = TableServers.GetInstance();
Console.WriteLine("Hello, World!");
for (int i = 0; i < 5; i )
{
Host1();
Host2();
}
Console.WriteLine();
static void Host1()
{
Console.WriteLine("Host1 Next server is: " tableservers1.GetNextServer());
}
static void Host2()
{
Console.WriteLine("Host2 Next server is: " tableservers2.GetNextServer());
}
請有人可以解釋我們如何使用這個新的 minified program.cs,特別是使用全域實體和變數以及創建方法。
uj5u.com熱心網友回復:
正如自 C# 10 以來的這個答案一樣,您可以通過引入public partial class Program(在頂級陳述句檔案的底部或單獨的檔案中)來實作這一點:
// rest of your top-level statement code
// ...
public partial class Program
{
static TableServers tableservers1 = TableServers.GetInstance();
static TableServers tableservers2 = TableServers.GetInstance();
}
但我認為切換到“舊式”Program類或將靜態欄位移動到另一個類將是一個更好的選擇。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/468075.html
標籤:C# 。网 控制台应用程序 .net-6.0 c#-10.0
下一篇:是否可以將sklearn.neighbors.KNeighborsClassifier用于張量流會話,即與張量一起使用?
