読者です 読者をやめる 読者になる 読者になる

プログラマーな日々

プログラマーをやっています。好きなツール:WorkFlowy、好きな言語:C#、好きなサービス:Backlog、好きなAWS:AWS Lambda。

【.NET】文字列が指定された書式の日時として妥当かどうかを返す拡張メソッドIsValidAsDateTimeExact

前回は、文字列が日時として妥当かどうかを返す拡張メソッドを作成しました。 blog.jhashimoto.netそこで、今回は、文字列が指定された書式の日時として妥当かどうかを返す拡張メソッドIsValidAsDateTimeExactを作成してみます。

文字列が日時として妥当かどうかを返す拡張メソッドIsValidAsDateTime

文字列の変換は不要で、日時として妥当かどうかを知りたいだけの場合、DateTime.TryParseを使うのは、煩わしいですよね。 DateTime result; // わざわざ変数を宣言しなければならない。 bool isValid = DateTime.TryParse("2016/01/01", out result); そこで…

【.NET】HashSet<T>に拡張メソッドでAsReadOnly<T>を実装する

前回、HashSetに拡張メソッドで、AddRangeを実装しました。blog.jhashimoto.net今回は、同様にAsReadOnly<T>を実装してみました。</t>

【.NET】HashSet<T>に拡張メソッドでAddRangeを実装する

List<T>にはAddRangeがありますが、なぜかHashSet<T>にはありません。拡張メソッドで実装してみました。 HashSetExtensions.cs using System; using System.Collections.Generic; namespace Extensions { public static class HashSetExtensions { /// <summary> /// 指定し</summary></t></t>…

【.NET】指定された文字列を文字列の先頭から削除する拡張メソッドString.TrimStart

String.TrimStartは、引数がcharです。Stringが引数のオーバーロードを書いてみました。

【.NET】IEnumerable<T>をCollectionに変換する拡張メソッドToCollection

ToListがあるなら、ToCollectionがあってもいいと思い、書いてみました。

【.NET】指定した文字列を削除した文字列を取得する拡張メソッドRemove

指定した文字列を削除した文字列を取得する拡張メソッドRemoveです。

【.NET】文字列を行に分割する拡張メソッドSplitToLines

文字列を行に分割する拡張メソッドSplitToLinesです。

【.NET】文字列が数字のみで構成されているかどうかを取得する拡張メソッド

文字列が数字のみで構成されているかどうかを取得する拡張メソッドIsNumberOnlyです。

【.NET】指定された文字数の文字列を文字列の左端から取得する拡張メソッド

指定された文字数の文字列を文字列の左端から取得する拡張メソッドLeftです。

【.NET】文字列の右端から指定された文字数の文字列を取得する拡張メソッド

文字列の右端から指定された文字数の文字列を取得する拡張メソッドです。

IEnumerable<T>に拡張メソッドとしてNotAnyを実装する

IEnumerable<T>に拡張メソッドとしてNotAnyを実装してみました。</t>

【.NET】Null安全なStringBuilder.AppendFormatを拡張メソッドで実装する

どういうこと? String.FormatやStringBuilder.AppendFormatは、パラメータにNullを渡すと例外が発生します。

ディレクトリ名の変更を拡張メソッドで実装する

前回(以下のエントリー)のディレクトリ版を作ってみました。 ファイル名の変更を拡張メソッドで実装する - プログラマーな日々ファイル名の変更が必要なケースは珍しくありませんが、System.IO.FileにもSystem.IO.FileInfoにも名前を変更するメソッドはあ…

ファイル名の変更を拡張メソッドで実装する

ファイル名の変更が必要なケースは珍しくありませんが、System.IO.FileにもSystem.IO.FileInfoにも名前を変更するメソッドはありません。 そこで、ファイル名の変更を拡張メソッドでFileInfoに実装してみました。内部ではFileInfo.MoveToメソッドを使用して…

DataTableがNullまたは空かどうかを判定する拡張メソッドを定義する

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として出力する - プログラマーな日々DataTableの内容をCSVとして出力するサンプルです。 先日のエントリーと等価な処理を拡張メソッドで定義します。 DataTableExtension.cs using System.Data; using System.Text; namespace Extensio…

パラメータ情報を付加したCommandTextを取得する拡張メソッド

パラメータ情報を付加したCommandTextを取得する拡張メソッドを定義すると便利です。 SQLをログ出力するケースで使用します。(2012/02/11 読者さんからの指摘で追記) using System; using System.Data; using System.Data.SqlClient; using System.Text; n…

SqlCommandの戻り値パラメータ追加/値取得を拡張メソッドで実装する

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がゼロかどうかを判定する拡張メソッド

IntPtrがゼロかどうかを判定する拡張メソッドを実装します。 どうすれば? using System; namespace ThumbnailExtraction { internal static class SystemExtension { #region IntPtr /// <summary> /// ゼロかどうかを示す値を取得します。 /// </summary> /// <param name="self"><see cref="System.IntPtr"/> のインスタンス</see></param>…

Session値を取得と同時に削除するメソッドを拡張メソッドで実装する その3

こちらの続きです。 Session値を取得と同時に削除するメソッドを拡張メソッドで実装する - プログラマーな日々Session値を一時的なデーター渡しに使う場合、値を取得直後に削除したい場合があります。でもSystem.Web.SessionState.HttpSessionStateクラスに…

DataRowプロパティの糖衣構文を拡張メソッドで定義する。

DataRowプロパティの糖衣構文を拡張メソッドで定義します。 どういうこと? 毎回DataRowのプロパティをチェックすると、ソースコードが煩雑になります。糖衣構文を用意しておくと親切です。 どうすれば? 1例です。 using System; using System.Data; names…

セッション値の存在確認メソッドを拡張メソッドで定義する

セッション値の存在確認メソッドを拡張メソッドで定義します。 どうして? 毎回nullチェックをすると煩雑なコードになる。 セッション値が存在しないときはnullを返すという仕様を記憶していなければならない。 拡張メソッドを使えば糖衣構文を用意すること…

NullチェックとDBMSのNullチェックを行う拡張メソッドを定義する

NullチェックとDBNullチェックを行う拡張メソッドを定義します。 どういうこと? NullとDBMSのNullを同等にチェックしたいケースは多々あります。そんなときのために拡張メソッドを定義しておくと便利です。 どうすれば? using System; namespace Extension…

拡張メソッドでRepeaterコントロールのRepeaterItemを型指定されたDataRowに変換する

拡張メソッドでRepeaterコントロールのRepeaterItemを型指定されたDataRowに変換します。 どういうこと? 型指定されたDataTableをRepeaterコントロールのDataSourceにバインドする場合、RepeaterItemを型指定されたDataRowに変換する拡張メソッドを定義する…

IsNullOrEmptyのIList版を拡張メソッドで実装する

IsNullOrEmptyのIList版を拡張メソッドで実装します。 どういうこと? 論よりソース。 using System; using System.Collections.Generic; namespace Extensions { public static class SystemCollectionsGenericExtensions { /// <summary> /// 指定されたIListが nul</summary>…

Session値を取得と同時に削除するメソッドを拡張メソッドで実装する その2

以下のエントリーを改良してみます。 Session値を取得と同時に削除するメソッドを拡張メソッドで実装する - プログラマーな日々Session値を一時的なデーター渡しに使う場合、値を取得直後に削除したい場合があります。でもSystem.Web.SessionState.HttpSessi…

Session値を取得と同時に削除するメソッドを拡張メソッドで実装する

どういうこと? Session値を一時的なデーター渡しに使う場合、値を取得直後に削除したい場合があります。でもSystem.Web.SessionState.HttpSessionStateクラスにはそのようなメソッドは用意されていません。そこで拡張メソッドを使い実装してみます。 どうす…

拡張メソッドのメリット

拡張メソッドは工夫次第で面白い使い方ができます。 既存のクラスを修正せずにメソッドを追加できる。 BCLのクラスであってもメソッドを追加することが可能です。 インターフェースでもメソッドを追加できる。 拡張メソッドを使えばインターフェースにもメソ…

Enum値のテキスト変換を拡張メソッドで実装する

Enum値をテキストで表示したいことがたまにあります。 例えば、こんなEnumがあるとします。 enum Hoge : int { Foo = 1, Bar = 2 } ありがちな方法 こう書くと、 Console.WriteLine(Hoge.Foo.ToString()); Console.WriteLine(Hoge.Bar.ToString()); このよう…

拡張メソッドでNullセーフなメソッドを実装する

オブジェクトのNullチェックって面倒ですよね。.Net 3.0以降なら拡張メソッドでNullセーフなメソッドを実装できます。例えば、IDisposableにNullチェックを入れたDisposeを実装するならこんな感じです。 using System; namespace SystemExtensions { /// <summary> //</summary>…

拡張メソッドの投稿サイト

拡張メソッドの投稿サイトが公開されています。 Recently added - Extension MethodHome of 565 c#, vb.net, f# and javascript extension methodsDataGridView.Printとかすごいです。 Print - Extension Method

拡張メソッドでNullセーフなメソッドを実装する

オブジェクトのNullチェックって面倒ですよね。.NET3.0以降なら拡張メソッドでNullセーフなメソッドを実装できます。ここではIDisposableにNullチェックを入れたDisposeを実装してみます。 /// <summary> /// IDisposableインターフェースの拡張メソッドを実装します</summary>…

ボタン二度押し対応のサンプル

Windowsフォームアプリのボタン連打対応のサンプルです。ボタンクリック処理中のボタン再押下を無効化します。詳細はソースのコメントを見てください。以下のスレの2007年11月9日 8:55のれいさんの回答を参考に、Formクラスの拡張メソッドとして実装してみま…