それとも「私のやり方が悪いの?」
必要に応じて引用符で囲まれた (quoted-printable として) 文字列を返す小さな関数を作成しています。それ以外の場合はそのまま返します。文字が関数に入力されます。結果は文字列です。
私が最初にやろうとしたことは次のとおりです。
private string QuotedChar(char ch) {
if(ch < (char)128 && !char.IsWhiteSpace(ch))
return(new string(ch));
// ...
}
ただし、コンパイラは、その return ステートメントをコンパイルするときに、CS0214、「ポインターと固定サイズのバッファーは安全でないコンテキストでのみ使用できます」と表示します。代わりにコードを変更すると、次のようになります。
private string QuotedChar(char ch) {
if(ch < (char)128 && !char.IsWhiteSpace(ch))
return(new string(new char[] { ch }));
// ...
}
...それはうまくいきます。しかし、それはかなり無意味に思えます。単なる文字であるため、ポインターまたは固定サイズのバッファーを使用しようとしていると考える理由がわかりません。私は何か非常にばかげたことを見逃していますか、それともこれは問題/バグですか?
参考までに、これは Microsoft .NET Framework ではなく、Mono 2.0 です。私は Windows を実行していないので、Microsoft の C# コンパイラが同じことを行うかどうかを確認する手段を持っていません。そのため、バグではないかと考えています。