質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Q&A

解決済

2回答

2532閲覧

匿名型 クラス内でクラス作成

ranran

総合スコア85

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

0グッド

0クリップ

投稿2015/03/02 07:27

お世話になります。

匿名型についてお聞きしたいのですが、
プロパティ以外にメソッド等を持たせることはできませんか?

一時的に使用するものなのでできればクラスは作成したくないのですが何か方法はないでしょうか。

javaにあるような匿名クラスを作成したいです。

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

C#ですが以下のようにできます。

lang

1class Program 2 { 3 static void Main(string[] args) 4 { 5 var obj = new 6 { 7 AnonymousFunc = (Func<int, string>)((loop) => new String('.',loop)) 8 }; 9 Console.WriteLine(obj.AnonymousFunc(5)); 10 Console.Read(); 11 } 12 }

投稿2015/03/02 09:21

sho_cs

総合スコア3541

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ranran

2015/03/02 10:20

ラムダ式ですね! 確かに関数は含めますがちょっと足りないです(^^; もともと私が行いたかったのは、 Sub Init() For Each row In dtt Me.ComboBox1.Items.Add(New TmpCmb(row.Name, row.Age)) Next End Sub Class TmpCmb Public name As String Public age As Integer Sub New(ByVal name As String, ByVal age As Integer) Me.name = name Me.seq = age End Sub Public Overrides Function ToString() As String Return name End Function End Class 1,DataTableのデータを匿名型としてコンボボックスに追加 2,表示するのはオーバーライドしたToStringで取得するName 3,選択されたとき取得するのはAge のような動作を行いたかったのです。
ranran

2015/03/02 15:13

!!!! それです! 今かなり感動しております 本当にありがとうございます 今年一番のすっきりです 今後ともよろしくお願いいたします(^^)
guest

0

ベストアンサー

残念ですが、匿名方にメソッドは作成できないようです。

https://msdn.microsoft.com/ja-jp/library/bb397696.aspx

lang

1匿名型には、読み取り専用パブリック プロパティが 1 つ以上含まれます。 それ以外のクラス メンバー (メソッドやイベントなど) は無効です。 プロパティの初期化に使用される式に、null、匿名関数、ポインター型を指定することはできません。

実際にラムダ式を匿名型に含められるかやってみましたがコンパイルエラーでした…。

匿名型ではなく内部クラスを作成するか、
関数化したい部分の実行結果そのものをプロパティに保存するか・・・。
(java経験者は物足りないでしょうね。)

投稿2015/03/02 08:53

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ranran

2015/03/02 09:17

そうでしたか,,,残念です(^^; 回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問