簡體   English   中英

在 C# 中傳遞參數

[英]Passing Argument in C#

如果用戶不輸入他們的首選語言,我如何輸入“英語”作為默認語言? 不使用 if/else 語句。

這是我的簡單代碼:

using System;

namespace Practice1._3
{
    class Program
    {            
        static void Main(string[] args)
        {
            Console.WriteLine("What's your name:");
            string name = Console.ReadLine();
            Console.WriteLine("Age:");
            string Age = Console.ReadLine();
            Console.WriteLine("Preferred language:");
            string language = Console.ReadLine();


            Console.WriteLine("\n-----------------------------------------");
            Console.WriteLine("Your name is " + name);           
            Console.WriteLine("Your age is " + Age);
            Console.WriteLine("Your language is " + language);

        }
    }
}

您可以使用三元條件運算符。

Console.WriteLine("Your language is : {0}", language == "" ? "English" : language);

如果您不能使用 if/else 語句或三元運算符,您可以使用以下方法在用戶未輸入首選語言的情況下將“英語”輸入為默認語言:

聲明一個默認語言變量並將其初始化為“English”: string defaultLanguage = "English";

讀取用戶的首選語言:string language = Console.ReadLine();

如果用戶輸入為空或空字符串,則使用空合並運算符 (??) 將默認語言分配給語言變量:language = language?? 默認語言;

空合並運算符 (??) 返回左側操作數(如果它不為空),否則返回右側操作數。 在這種情況下,如果用戶的輸入不為 null 或空字符串,則為語言變量分配用戶輸入的值。 否則,它會被分配默認語言。

這是修改后的代碼:

using System;
  
namespace Practice1._3
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("What's your name:");
            string name = Console.ReadLine();
            Console.WriteLine("Age:");
            string Age = Console.ReadLine();
            Console.WriteLine("Preferred language:");
            string language = Console.ReadLine();
            string defaultLanguage = "English";
            language = language ?? defaultLanguage;

            Console.WriteLine("\n-----------------------------------------");
            Console.WriteLine("Your name is " + name);
            Console.WriteLine("Your age is " + Age);
            Console.WriteLine("Your language is " + language);

        }
    }
}

因為這一行string language = Console.ReadLine(); ,如果不檢查變量中已經存儲的內容,就不可能做到這一點。 我在想一個默認值。 即使您設置了默認值,此行也會用空字符串覆蓋它。 在此處查看有關字符串與空值的更多信息

就像 A. Petit 上面建議的那樣,我還建議使用 if 語句來檢查輸入並相應地顯示您的語言。 您可以為此使用三元。 三元也是 if 語句的一種形式。

Console.WriteLine("What's your name:");
string name = Console.ReadLine();
Console.WriteLine("Age:");
string Age = Console.ReadLine();
Console.WriteLine("Preferred language:");
string language = Console.ReadLine();

//check if language is entered. If not, use a default langage
language = language=="" || language == null? "English": language;

Console.WriteLine("\n-----------------------------------------");
Console.WriteLine("Your name is " + name);
Console.WriteLine("Your age is " + Age);
Console.WriteLine("Your language is " + language);

暫無
暫無

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

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