タイトルがわかりにくくてすみません。
C#の学習者です。オブジェクトについて学習しているときに気になることがあったので質問させていただきます。
C#では、配列はオブジェクトの一種ですよね。例えば、整数型の配列arrayを作る場合
int[] array = new int[3] {1, 2, 4};
と書きます。また、この文は
int[] array = {1, 2, 4};
と書くこともできます。
そこで思ったのですが、stringも配列である以上、
string str = "abc";
という文は
string str = new string[1] {"abc"};
のような文を書くこともできると思うのですが、エラー文が出てしまいます。コードとエラー文を以下に載せます。
using System; public class Test { public static void Main() { string str = new string[1]{"abc"}; Console.WriteLine(str); } }
prog.cs(7,22): error CS0029: Cannot implicitly convert type string[]' to
string'
Compilation failed: 1 error(s), 0 warnings
[]内の数字を大きくしてみたり、0にしてみたりといろいろ試してみましたが、解決しませんでした。
エラー文からわかるように、stringではなくstring[]を作ってしまっているようなのですが、stringをnewすることはできないのでしょうか?
わざわざこのように書く必要がないことはわかっていますが、どうしても気になったので質問させてもらいました。回答よろしくお願いします。
補足
補足になっているかわかりませんが、
string[] str = new string[] {"abc","de"};
と書くとエラーが出ないことは確認しました。
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/06/04 22:37
2017/06/05 00:50