![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
VB.NETでは出来るのにC#で同じようにするやり方がわからなくて困っています。
VSのバージョンは2008です。
やりたいことは
『param.Item("AAA") = "111"』
このように書けるクラスを作りたいのですが、
VBで出来てC#では出来ないのでしょうか?
イメージとしてはプロパティにメソッドをくっつけたようなクラス?
C#ではこのように書くとエラーになります。
どのようにしたらいいでしょうか?
public string Item(string Key)
{
set { _param[Key] = value; }
}
VB
Dim param As New Param()
param.Item("AAA") = "111"
----Paramクラス----
Imports System.Text
Public Class Param
Private _Hash As New Hashtable
Default Public Property Item(ByVal Key As String) As String
Get
Return _Hash(Key)
End Get
Set(ByVal value As String)
_Hash(Key) = value
End Set
End Property
End Class
---------
No.3ベストアンサー
- 回答日時:
Param param = new Param();
param.Item["AAA"] = "111";
という形にできるかどうかという観点だけで考察すると
public class Param
{
public Items Item = new Items();
public class Items
{
private Hashtable _Hash = new Hashtable();
public String this[object Key]
{
get { return _Hash[Key] as String;}
set { _Hash[Key] = value; }
}
}
}
クラス内にクラスを作り、インデクサで記述すればご希望の書式で記述する
ことができます。
No.2
- 回答日時:
> param.Item["BBB"] = "222;"
は出来ないみたいですよ
[](インデクサ)の定義の内部に Itemが含まれているようなので
public Object Item[ Object key]
{
get { return _hash[key]; }
set { _hash[key] = value; }
}
といった具合で public Object this[ Object key]と同時に定義するエラーになるようです
プロパティとして定義すると 引数 keyを受け付けないようですし
Itemをコレクションとして定義するの方向にしないといけないように思います
そうなると Itemに対してのsetアクセサでは無く Addメソッドを使うためのラッパーが必要になりそうです
VBとC#で 文法を同じに出来ない部分のように思いますよ
ありがとうございます。
VBに出来てC#で出来ないはずがないと思い
色々試してみましたがダメでした。
param["BBB"] = "222";
でもいいと言えばいいのでthisを使ったやり方で対応します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
関数内の変数に<summary>コメン...
-
C#でほかのファイルにある自作...
-
親クラスから子クラスへアクセス。
-
Java リフレクションについて
-
無名パッケージからのインポート
-
生成されたサーブレットのエラ...
-
キャストについて教えてください
-
クラス間でのデータ参照
-
範囲外の数値を代入したらエラ...
-
C# log4netの使い方
-
内部クラスのインスタンスを外...
-
違うクラスからの変数の共有化
-
C#のクラスライブラリでメッセ...
-
指定されたクラスの継承元の確...
-
下記のコードを実行すると、Mai...
-
c++,ある関数のクラスから別の...
-
JAVA、JAVA Scriptについて教え...
-
Java throwとthrowsの違いについて
-
変数名の付け方
-
エクセルVBAで、条件に一致する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数内の変数に<summary>コメン...
-
クラス間でのデータ参照
-
C#にて別クラスの関数を使いたい
-
構造 他のクラスの構造体を別...
-
c++,ある関数のクラスから別の...
-
C#のクラスライブラリでメッセ...
-
C++でfriendクラスにしているの...
-
Java リフレクションについて
-
ひとつのファイルにクラスは1つ?
-
C#でほかのファイルにある自作...
-
範囲外の数値を代入したらエラ...
-
無名パッケージからのインポート
-
java-別クラスの変数の使い方を...
-
import と extends について
-
C# インターフェイスの実装
-
親クラスから子クラスへアクセス。
-
a href="..." とServlet
-
継承したクラス側のクラス名の取得
-
Java
-
JSPでbeanプロパティ(配列)を...
おすすめ情報