0

よく知られている echo コマンドのように動作するプログラムを C# で作成しようとしています。引用符で囲まれた文字列を印刷しようとする場合を除いて、すべて正常に動作します。

たとえば、echo コマンドで次のように入力します。

echo "Hello, world!"

そして、あなたは出力として得ます:

"Hello, world"

しかし、プログラムを実行すると、次のようになります。

Hello, world!

これはコードです:

using System;

namespace CSharpEcho
{
    public class Echo
    {
        public static void Main(String[] argv)
        {
            Int32 ArgsLength = argv.Length;

            if(ArgsLength == 0)
                Console.WriteLine("You have to write something!");
            else
            {
                String Str = "";

                foreach(String args in argv)
                {
                    Str += args + " ";
                }

                Console.WriteLine(String.Format("{0}", Str));
            }
        }
    }
}
4

3 に答える 3

0

文字列内の二重引用符はややこしいです。これを試して:

Console.WriteLine(String.Format(@"""{0}""", Str));

@ 記号は、文字列を文字列リテラルにします。これは、「エスケープ」文字がないことを意味します。二重引用符の外側のペアは文字列を囲む通常の引用符であり、二重引用符の内側の二重引用符は実際の引用文字です。

于 2013-09-15T22:05:18.617 に答える