C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: プロパティとメソッドの考え方について


(過去ログ 109 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■64870 / inTopicNo.1)  プロパティとメソッドの考え方について
  
□投稿者/ 悩み多きランナー (14回)-(2013/01/19(Sat) 01:20:16)

分類:[C#] 

お世話になります。

C#でインメモリデータのテーブルを扱うDataTableクラスについて学習しています。
DataTableクラスを使用してカラム追加を考える時にテーブルの項目定義で使用するDataColumnオブジェクトが
ありますがMSDNライブラリにはDataColumn オブジェクトの作成にはColumns プロパティの Add メソッドを呼び出しますと
あります。
http://msdn.microsoft.com/ja-jp/library/hfx3s9wd(v=vs.80).aspx

ここでColumnsプロパティのAddメソッドという表現がよくわからなくて、プロパティはオブジェクトの属性値で
メソッドはオブジェクトが持っている機能・働きでオブジェクトの中でプロパティとメソッドは
分離しているイメージを持ってました。

ここで指すColumsプロパティという属性値のAddメソッドとはどのように解釈したらよいのかご教示ください。

よろしくお願い致します。
引用返信 編集キー/
■64871 / inTopicNo.2)  Re[1]: プロパティとメソッドの考え方について
□投稿者/ 魔界の仮面弁士 (118回)-(2013/01/19(Sat) 02:57:10)
No64870 (悩み多きランナー さん) に返信
> DataTableクラスを使用してカラム追加を考える時にテーブルの項目定義で使用するDataColumnオブジェクトが
> ありますがMSDNライブラリにはDataColumn オブジェクトの作成にはColumns プロパティの Add メソッドを呼び出しますと
> あります。
> http://msdn.microsoft.com/ja-jp/library/hfx3s9wd(v=vs.80).aspx

訳文も原文も誤解を招くような表現になっていますが、ここで言われていることは、
DataTable の Column プロパティ…これは DataColumnCollection を返すものであり、
その DataColumnCollection の Add メソッドを呼ぶことで列を追加することができる、のような意味かと。
引用返信 編集キー/
■64874 / inTopicNo.3)  Re[2]: プロパティとメソッドの考え方について
□投稿者/ 悩み多きランナー (15回)-(2013/01/19(Sat) 12:05:15)
No64871 (魔界の仮面弁士 さん) に返信

> 訳文も原文も誤解を招くような表現になっていますが、ここで言われていることは、
> DataTable の Column プロパティ…これは DataColumnCollection を返すものであり、
> その DataColumnCollection の Add メソッドを呼ぶことで列を追加することができる、のような意味かと。

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

”DataTable の Column プロパティ…これは DataColumnCollection を返すものであり”とありますが
プロパティの中にDataColumnCollection(コレクション)を保持しているということでしょうか?
プロパティには値だけでなくオブジェクトやコレクションをクラスによって持つ場合があるということでしょうか?

よろしくお願い致します。
引用返信 編集キー/
■64875 / inTopicNo.4)  Re[3]: プロパティとメソッドの考え方について
□投稿者/ Azulean (83回)-(2013/01/19(Sat) 12:14:30)
No64874 (悩み多きランナー さん) に返信
> プロパティには値だけでなくオブジェクトやコレクションをクラスによって持つ場合があるということでしょうか?

プロパティは int 型などのような値型のほかに、Control 型などのような参照型を返すことができます。

たとえば、Form クラスの ActiveControl プロパティだと今、フォーカスがあるコントロールの参照(インスタンス)を取得できます。
このため、this.ActiveControl.Name というようにつなげて書くこともできます。これは ActiveControl が Control のオブジェクトを返しているので、そのオブジェクトの Name プロパティを見るという形です。

分けて書くとこういう感じ。
Control activeControl = this.ActiveControl;
string name = activeControl.Name;


件の DataColumnCollection であれば、対象のクラスが以下のような実装をしていると考えればよいかと。
private DataColumnCollection _collection;
public DataColumnCollection Columns { get { return _collection; } }

(プロパティの中というよりは、クラスが DataColumnCollection のインスタンスを保持しており、プロパティの get アクセサでそのインスタンスを外部に見せている)
引用返信 編集キー/
■64876 / inTopicNo.5)  Re[4]: プロパティとメソッドの考え方について
□投稿者/ 悩み多きランナー (16回)-(2013/01/19(Sat) 13:02:21)
No64875 (Azulean さん) に返信
> ■No64874 (悩み多きランナー さん) に返信
>>プロパティには値だけでなくオブジェクトやコレクションをクラスによって持つ場合があるということでしょうか?
>
> プロパティは int 型などのような値型のほかに、Control 型などのような参照型を返すことができます。
>
> たとえば、Form クラスの ActiveControl プロパティだと今、フォーカスがあるコントロールの参照(インスタンス)を取得できます。
> このため、this.ActiveControl.Name というようにつなげて書くこともできます。これは ActiveControl が Control のオブジェクトを返しているので、そのオブジェクトの Name プロパティを見るという形です。
>
> 分けて書くとこういう感じ。
> Control activeControl = this.ActiveControl;
> string name = activeControl.Name;
>
>
> 件の DataColumnCollection であれば、対象のクラスが以下のような実装をしていると考えればよいかと。
> private DataColumnCollection _collection;
> public DataColumnCollection Columns { get { return _collection; } }
>
> (プロパティの中というよりは、クラスが DataColumnCollection のインスタンスを保持しており、プロパティの get アクセサでそのインスタンスを外部に見せている)

ご回答ありがとうございました。
DataColumnプロパティでDataColumnCollection のインスタンスを保持していてAddメソッドを読んでコレクションにDataColumnオブジェクトを
追加しているということです。納得しました。

本当にありがとうございます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -