簡體   English   中英

我如何創建一個字符串數組並使其可用於我們的 C# 控制台應用程序中的所有方法

[英]How i can create an array of strings and make it available to all the method inside our C# console application

我有以下控制台應用程序:-

namespace MSE
{
    class Program
    {
        private static async Task<ScanInfo> gettingCustomerInfo(string name, long Id)
        {
            // code goes here..
        }

        static async Task Main(string[] args)
        {
            //code goes here..
            var tasks = companies.Select(c => Task.Run(() => gettingCustomerInfo(c.properties.name.value, c.companyId)));
            //code goes here...
        }
    }
}

現在我想從一個文本文件中獲取數據並用這些數據填充一個字符串列表,然后讓這個列表可用於所有控制台應用程序方法..所以不知道如何定義這樣一個數組,這是代碼構建數組:-

List<string> list = new List<string>();
var lines = File.ReadAllLines("c:\\file.txt");
foreach (var line in lines)
{
    list.Add(line);
}

那么我如何創建諸如列表並使其在所有方法中可用?

全局聲明list ,然后您可以在整個 class 中使用它。

namespace MSE
{
    class Program
    {
        static List<string> list;

        private static async Task<ScanInfo> gettingCustomerInfo(string name, long Id)
        {
            // code goes here..
        }

        static async Task Main(string[] args)
        {
            list = new List<string>();
            var lines = File.ReadAllLines("c:\\file.txt");
            foreach (var line in lines)
            {
                list.Add(line);
            }
            var tasks = companies.Select(c => Task.Run(() => 
            gettingCustomerInfo(c.properties.name.value, c.companyId)));
            //code goes here...
        }
    }
}

如果 class“程序”的所有功能都需要訪問它,它必須是 class 的一部分。

由於所有這些功能也是static,因此變量本身也必須是。

通常 static 變量是要避免的。 它們是全局變量,而全局變量是一個糟糕的主意。 在這種情況下(控制台應用程序),它不應該重要。 只需用這個替換您當前的初始化和聲明:

namespace MSE
{
    class Program
    {
        static List<string> list = new List<string>();

        private static async Task<ScanInfo> gettingCustomerInfo(string name, long Id)
        {
         // code goes here..
        }

請注意,如果您保留這兩個代碼,則 function 中的本地副本將隱藏類范圍的代碼,而它位於 scope 中。

編輯:我剛剛注意到您似乎正在嘗試學習多任務處理。 我不建議在控制台應用程序中學習多任務。 它只是為已經非常復雜的事情增加了十幾個額外的問題。 始終嘗試使用 GUI 應用程序來學習多任務,即使是基本的 WindowsForms 也比控制台好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM