2016-07-17 5 views
0

私はサーバー側のクライアントモデルを作成しており、クライアント側の開発環境の性質上、.NET 2.0をフレームワークとして使用することを余儀なくされています。NET 2.0の文字列にスペースを追加する代わりに?

はじめに特定の時刻に特定のIPアドレスからコンソールに新しい接続が出力されるようにしたいとしましょう。私は書くだろう:

Console.Writeline("New connection: " + 
        client.endpoint.ToString() + " " + DateTime.Now.ToString()); 

私はこの行の代替があるかどうか疑問に思っていた。これらの行のいくつかは非常に長くなってきており、私にはちょっとした不安が感じられます。

答えて

1

Console.WriteLine()overloadsのいずれかを使用できます。それはあまり保存されませんが、おそらくそれは、より自然に、たとえば、複数行に文を分割:またTraceクラスを探索することができます

Console.WriteLine("New connection: {0} {1}", 
        client.endpoint, 
        DateTime.Now); 

DateTimeを常に出力するようにトレースオプションを設定すると、そのパラメータをスキップできるようになります。次に、ConsoleTraceListenerを追加して、これらのトレースメッセージをコンソールに書き込むことができます。

Trace.TraceInformation("New connection: {0}", client.endpoint); 
+0

@ArkayCZはString.Formatメソッドに関しても同様の答えを出しましたが、Traceクラスについても言及しました。これは私のコードを短縮するのに役立ちました。 – Jaja

0

多くの文字列を一緒に追加する場合は、.NET FrameworkでStringBuilderクラスを使用することをお勧めします。これにより、パフォーマンスが向上します。

スペースを追加するには、変数をstring separator = " ";と定義し、これを使用して文字列を作成します。

StringBuilderで文字列を作成した後、コンソールに書き込んだり、必要に応じて他のことを行うことができます。

+0

また、私はこのになります。 – Jaja

2

あなたは、文字列が読みやすくなりString.Formatのを、使用することができます。このアプローチを使用して、あなたのような何かをしたいです。それはあなたの質問に正確に答えるものではありません。

String s = String.Format("New connection: {0} {1}.", client.endpoint.ToString(), DateTime.Now.ToString()); 

そしてConsole.WriteLineで、あなただけのこの操作を行うことができます:あなたはこのようにそれを使用

Console.WriteLine("New connection: {0} {1}.", client.endpoint.ToString(), DateTime.Now.ToString()); 
0

簡単な解決策は、文字列型の無制限のパラメータ(引数)がかかりますヘルパーメソッドを作成することができOneと

その後
static void ConsoleLog(params string[] data) 
{ 
    Console.WriteLine(string.Join(" ", data)); 
} 

この方法を使用する:その後、結合して、画面に書き込む前に、テキストをフォーマットするstring.Join()メソッドを使用して

ConsoleLog("New connection:", client.endpoint.ToString(), DateTime.Now.ToString()); 

それともそれが簡単/編集を読み取るために作る:

ConsoleLog(
    "New connection:", 
    client.endpoint.ToString(), 
    DateTime.Now.ToString() 
    ); 
+0

'ConsoleLog'で行ったようにデータを結合する新しいメソッドを作成する必要がないので、興味深い解決策ではあるが、' Console.WriteLine'オーバーロードを使用するのは面倒ではないようです。 – Jaja

+1

私はこのソリューションは実際にはあまり面倒ではないかもしれないと思うかもしれませんが、おそらくオーバーロード(計算や関数呼び出し)の負荷が少し遅くなりますが、{0}を追加するのではなくカンマを追加してフォーマットし、あなたは誤って番号をスキップしてエラーを取得することができます –

関連する問題