プロが教えるわが家の防犯対策術!

こんにちは。

string name;
name = "sukeken";

これを、オブジェクト指向プログラミングらしく

string name = new string("sukeken");

とするのは、ダメなのでしょうか?
コンパイルは、許してくれないようなのですが…。

同じように、intもダメでしょうか?

環境 VisualStudio2012 C#

よろしくお願いいたします。

A 回答 (2件)

C#では文字列そのものがstring型のオブジェクトなので、stringのコンストラクタにstringを指定するというのは完全に無駄なので、コンストラクタが用意されていないのだと思います。



どうしてもそのように書きたいのであれば、たとえば

string name = new string("sukeken".ToCharArray());

と書くことは出来ますが、stringをいったんcharの配列に変換してstringにする、という非常に無駄な処理になります。

単純に

string name = "sukeken";

がベストです。
    • good
    • 0
この回答へのお礼

qwertfk さん

確か、Javaだとできたようなするので、やってみたところです。
ダメでしたけど。

>string name = "sukeken";
これが単純なのは十分わかります。
でも、クラスからインスタンスを作る…ってのが一番簡単に実感できるかな?
なんて思ったものですから。

ありがとうございました。

お礼日時:2012/11/02 10:59

>これを、オブジェクト指向プログラミングらしく


>string name = new string("sukeken");

それのどこがオブジェクト指向プログラミングらしいのかはわかりませんが
コンストラクタにString(String)がないのでダメです。
    • good
    • 0
この回答へのお礼

wormhole さん

コンストラクタ…なるほどです。
ありがとうございました。

お礼日時:2012/11/16 09:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!