.netでの文字列の配列

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
セレン

.netでの文字列の配列

#1

投稿記事 by セレン » 15年前

private: array<String^>^ Path;
のようにいつ確保しているのですが配列の個数を指定したいです。
char型とかでしたら[10]とかでかけたのですがこの様には書けないのでしょうか?

YuO

Re:.netでの文字列の配列

#2

投稿記事 by YuO » 15年前

.NET Frameworkにおいて,配列型はあくまで参照型です。
# System::Arrayを継承している形になる。
なので,gcnewを使って構築しないといけません。
Path = gcnew array<String^>(10);

unmanagedのイメージで書くならば,
std::vector<std::String *> * Path;
に対して,
Path = new std::vector<std::String *>(10);
としないといけないのと同じことです。

セレン

Re:.netでの文字列の配列

#3

投稿記事 by セレン » 15年前

回答ありがとうございます。

クラスで使う為に
private: String^ Path = gcnew array<String^>(10);
と書いたのですが
error C3845: 'KanadeMemo::Form1::Path': ref クラス または値型の内部で、スタティック データ メンバのみ初期化することができます
というエラーが出てしまうのでてしまいます。


Path = gcnew array<String^>(10); でもエラーが出てしまうのですがクラスには書けないのでしょうか?

YuO

Re:.netでの文字列の配列

#4

投稿記事 by YuO » 15年前

メンバ変数の初期化の問題ですか。

であれば,C++ですから,直接的にデータメンバを初期化することはできません。
コンストラクタの初期化子を使います。

e.g.)
ref class Test
{
public:
Test () : dataMember_(gcnew array<String^>(10))
{
}

private:
array<String^>^ dataMember_ ;
};

閉鎖

“C言語何でも質問掲示板” へ戻る