山口屋~活動日誌~

私生活で主な出来事をピックアップ

StreamReader TextFieldParser 基本比較

2012-07-08 15:42:49 | ソフトウェア開発
C#でファイル読み出しでよく使うクラスにStreamReaderとTextFieldParserがあり、メモ程度の比較をしてみた。

<プロパティ>

StreamReader:bool EndOfStream
TextFieldParser:bool EndOfData

<メソッド1>

StreamReader:string ReadLine()
TextFieldParser:string ReadLine()
※解析を実行しません。区切られたフィールドの中に行末文字があれば、そこで行が終了すると解釈します。
TextFieldParser:string[] ReadFields()

<メソッド2>

StreamReader:string ReadToEnd()
TextFieldParser:string ReadToEnd()
※空白行とコメントを無視しません。

C# Type

2012-07-07 12:11:53 | ソフトウェア開発
C#のTypeクラスは,クラス,構造体などのメンバ情報を取得する際などに利用できるクラスである。

まず,typeof演算子を使い,Typeオブジェクトを取得する。

例文
Type type = typeof(NameObject);

続いて,ここからはリフレクション機能を使わなければならないので,usingステートメントを追加する。

例文
using System.Reflection;

欲しいメンバ情報に合わせてTypeオブジェクトのメソッドを実行する。メソッドは何種類かある。

GetMembers:MemberInfoオブジェクトを返す。BindingFlagsで検索条件を指定。
GetProperties:
GetMethods:MethodInfoオブジェクトを返す。
GetFields:
GetInterfaces:
GetEvents:
GetNestedTypes:

属性情報を取得したい場合は,リフレクション機能を使い,MemberInfoオブジェクトに対して,AttributeクラスのGetCustomAttributesメソッドを実行する。

例文
Attribute.GetCustomAttributes(memberInfo, typeof(NameAttribute);

なお,Typeクラス,MethodInfoクラスはいずれもMemberInfoクラスの派生クラス,サブクラスである。

参考・引用

C# によるプログラミング入門
DOBON.NET プログラミング道