拡張メソッド
前回は、文字列が日時として妥当かどうかを返す拡張メソッドを作成しました。 blog.jhashimoto.netそこで、今回は、文字列が指定された書式の日時として妥当かどうかを返す拡張メソッドIsValidAsDateTimeExactを作成してみます。
文字列の変換は不要で、日時として妥当かどうかを知りたいだけの場合、DateTime.TryParseを使うのは、煩わしいですよね。 DateTime result; // わざわざ変数を宣言しなければならない。 bool isValid = DateTime.TryParse("2016/01/01", out result); そこで…
前回、HashSetに拡張メソッドで、AddRangeを実装しました。blog.jhashimoto.net今回は、同様にAsReadOnly<T>を実装してみました。</t>
List<T>にはAddRangeがありますが、なぜかHashSet<T>にはありません。拡張メソッドで実装してみました。 HashSetExtensions.cs using System; using System.Collections.Generic; namespace Extensions { public static class HashSetExtensions { /// <summary> /// 指定し</summary></t></t>…
String.TrimStartは、引数がcharです。Stringが引数のオーバーロードを書いてみました。
ToListがあるなら、ToCollectionがあってもいいと思い、書いてみました。
指定した文字列を削除した文字列を取得する拡張メソッドRemoveです。
文字列を行に分割する拡張メソッドSplitToLinesです。
文字列が数字のみで構成されているかどうかを取得する拡張メソッドIsNumberOnlyです。
指定された文字数の文字列を文字列の左端から取得する拡張メソッドLeftです。
文字列の右端から指定された文字数の文字列を取得する拡張メソッドです。
IEnumerable<T>に拡張メソッドとしてNotAnyを実装してみました。</t>
どういうこと? String.FormatやStringBuilder.AppendFormatは、パラメータにNullを渡すと例外が発生します。
前回(以下のエントリー)のディレクトリ版を作ってみました。 ファイル名の変更を拡張メソッドで実装する - プログラマーな日々ファイル名の変更が必要なケースは珍しくありませんが、System.IO.FileにもSystem.IO.FileInfoにも名前を変更するメソッドはあ…
ファイル名の変更が必要なケースは珍しくありませんが、System.IO.FileにもSystem.IO.FileInfoにも名前を変更するメソッドはありません。 そこで、ファイル名の変更を拡張メソッドでFileInfoに実装してみました。内部ではFileInfo.MoveToメソッドを使用して…
DataTableがNullまたは空かどうかを判定する拡張メソッドを定義します。DataRowを保持していない場合に空と判断しています。 System.ComponentModel.IListSourceを実装したインスタンスであれば、DataTable以外でも使えます。 Extensions.cs using System.Co…
セッション状態値の存在チェックを拡張メソッドで実装します。 ソースコード using System; using System.Web.SessionState; namespace Extensions { public static class SystemWebSessionStateExtensions { /// <summary> /// 指定されたセッション状態値が存在する</summary>…
DataTableの内容をCSVとして出力する - プログラマーな日々DataTableの内容をCSVとして出力するサンプルです。 先日のエントリーと等価な処理を拡張メソッドで定義します。 DataTableExtension.cs using System.Data; using System.Text; namespace Extensio…
パラメータ情報を付加したCommandTextを取得する拡張メソッドを定義すると便利です。 SQLをログ出力するケースで使用します。(2012/02/11 読者さんからの指摘で追記) using System; using System.Data; using System.Data.SqlClient; using System.Text; n…
SqlCommandの戻り値パラメータ追加/値取得を拡張メソッドで実装してみます。 using System; using System.Data; using System.Data.SqlClient; namespace DataAccess { public static class SqlParameterCollectionExtensions { /// <summary> /// 戻り値のパラメータ</summary>…
配列の要素をカンマで連結する拡張メソッドを定義すると、ログ出力時などに便利です。System.Arrayクラスを拡張すると全ての配列で使用することができます。 using System; namespace Extensions { public static class SystemExtensions { /// <summary> /// 配列の</summary>…
IntPtrがゼロかどうかを判定する拡張メソッドを実装します。 どうすれば? using System; namespace ThumbnailExtraction { internal static class SystemExtension { #region IntPtr /// <summary> /// ゼロかどうかを示す値を取得します。 /// </summary> /// <param name="self"><see cref="System.IntPtr"/> のインスタンス</see></param>…
こちらの続きです。 Session値を取得と同時に削除するメソッドを拡張メソッドで実装する - プログラマーな日々Session値を一時的なデーター渡しに使う場合、値を取得直後に削除したい場合があります。でもSystem.Web.SessionState.HttpSessionStateクラスに…
DataRowプロパティの糖衣構文を拡張メソッドで定義します。 どういうこと? 毎回DataRowのプロパティをチェックすると、ソースコードが煩雑になります。糖衣構文を用意しておくと親切です。 どうすれば? 1例です。 using System; using System.Data; names…
セッション値の存在確認メソッドを拡張メソッドで定義します。 どうして? 毎回nullチェックをすると煩雑なコードになる。 セッション値が存在しないときはnullを返すという仕様を記憶していなければならない。 拡張メソッドを使えば糖衣構文を用意すること…
NullチェックとDBNullチェックを行う拡張メソッドを定義します。 どういうこと? NullとDBMSのNullを同等にチェックしたいケースは多々あります。そんなときのために拡張メソッドを定義しておくと便利です。 どうすれば? using System; namespace Extension…
拡張メソッドでRepeaterコントロールのRepeaterItemを型指定されたDataRowに変換します。 どういうこと? 型指定されたDataTableをRepeaterコントロールのDataSourceにバインドする場合、RepeaterItemを型指定されたDataRowに変換する拡張メソッドを定義する…
IsNullOrEmptyのIList版を拡張メソッドで実装します。 どういうこと? 論よりソース。 using System; using System.Collections.Generic; namespace Extensions { public static class SystemCollectionsGenericExtensions { /// <summary> /// 指定されたIListが nul</summary>…
以下のエントリーを改良してみます。 Session値を取得と同時に削除するメソッドを拡張メソッドで実装する - プログラマーな日々Session値を一時的なデーター渡しに使う場合、値を取得直後に削除したい場合があります。でもSystem.Web.SessionState.HttpSessi…
どういうこと? Session値を一時的なデーター渡しに使う場合、値を取得直後に削除したい場合があります。でもSystem.Web.SessionState.HttpSessionStateクラスにはそのようなメソッドは用意されていません。そこで拡張メソッドを使い実装してみます。 どうす…