検索エンジンでこの記事を見つけた場合は、まずこのシリーズの最初の記事を読むことをお勧めします。今日は、このシリーズの 2 番目の記事です。詳しく見てみましょう。
1. DataTable.HasRows
これはどのフレームワークにも属しませんが、拡張メソッドを使用してこのようなメソッドを模倣するのは簡単ですが、データ テーブル オブジェクトが空かどうかを確認する元のコードは削除されません。コードは次のとおりです:
<CODE> public static bool HasRows(this DataTable dataTable) { return dataTable.IsNull() ? false : (dataTable.Rows.Count > 0); } public static bool IsNull(this object o) { return (o == null); } To use: If(dataTable.HasRows()) { … } </CODE>
その他のルールは拡張メソッドと同じです。
2. ToTitleCase
このメソッドは、各単語の最初の文字を大文字に変換し、残りの文字を小文字に変換します。たとえば、「サンプルを以下に見てください」は「サンプルを以下に見てください」に変換されます。 System.Globalization 名前空間の一部ですが、次の問題があります:
現在のカルチャ
入力文字列がすべて大文字の場合
以下の拡張メソッドは両方の欠陥を考慮しています。
<CODE> public static string ToTitleCase(this string inputString) { return Thread.CurrentThread.CurrentCulture.TextInfo. ToTitleCase((inputString ?? string.Empty).ToLower()); } </CODE>
3. 明示的および暗黙的なインターフェイスの実装
これは重要ですか?はい、非常に重要です。これらの構文の違いをご存知ですか?実際、それらの間には根本的な違いがあります。クラスの暗黙的なインターフェイス実装は、デフォルトでパブリック メソッドになり、クラスのオブジェクトまたはインターフェイスでアクセスできます。クラスの明示的なインターフェイス実装は、デフォルトではプライベート メソッドであり、クラスのオブジェクトではなく、インターフェイスを通じてのみアクセスできます。以下はサンプルコードです:
<CODE> INTERFACE public interface IMyInterface { void MyMethod(string myString); } CLASS THAT IMPLEMENTS THE INTERFACE IMPLICITLY public MyImplicitClass: IMyInterface { public void MyMethod(string myString) { /// } } CLASS THAT IMPLEMENTS THE INTERFACE EXPLICITLY public MyExplicitClass: IMyInterface { void IMyInterface.MyMethod(string myString) { /// } } MyImplicitClass instance would work with either the class or the Interface: MyImplicitClass myObject = new MyImplicitClass(); myObject.MyMethod(""); IMyInterface myObject = new MyImplicitClass(); myObject.MyMethod(""); MyExplicitClass would work only with the interface: //The following line would not work. MyExplicitClass myObject = new MyExplicitClass(); myObject.MyMethod(""); //This will work IMyInterface myObject = new MyExplicitClass(); myObject.MyMethod(""); </CODE>
4. 自動属性
これは、1 つのパブリック メンバーと 2 つのプライベート メンバーを含む属性を置き換える最良の方法です。
Tab キーを 2 回押すと (コード スニペット機能を有効にする必要があります)、Auto 属性が作成され、Auto 属性の名前を取得します。次のコード
<CODE> private double _total; public double Total { get { return _total; } set { _total = value; } } </CODE>
は
<CODE> public double Total { get; set; } </CODE>
になります。設計に従ってアクセス指定子を適用することもでき、コンパイラーはプライベート メンバー変数を作成する必要があることに注意してください。
5. 強力な Path.Combine
Path.Combine は、その強力な機能により、末尾のスラッシュとパス関連の問題を排除し、パス文字列をより連続的にします。
パス内の有効な区切り文字やスペースについて心配する必要はなく、パスを結合するときに文字列の連結を扱う必要もありません。
6. クラスに「Override」メソッドを記述する簡単な方法
コード エディターで「override」と入力し、スペース バーを押すと、図 2 に示すように、クラスに基づいてオーバーライド可能なメソッドのリストが表示されます。 。
図 1 オーバーライド可能なメソッドのリスト
7. 拡張設定ファイルを使用する
app.config (アプリケーション用) および web.config 設定ファイルのおかげで、複雑なアプリケーション レベルの設定を処理できます。さまざまな環境セットアップ、この場合は開発、テスト、実稼働環境のセットアップで直面するさまざまな問題に対処します。
コードの一部を分析、テスト、またはデバッグするには、特定の環境に戻る必要があり、このプロセスでは、すべてのセットアップと調整が面倒です。
たとえば、すべての復元で ConnectionStrings (接続文字列) のリセットが必要になる場合がありますが、外部ファイル参照を通じて ConfigSource プロパティを使用してこの問題を解決できるようになりました。たとえば、次のコードは、development.config 外部構成ファイルを参照します。
<connectionStrings configSource="configs\ development.config" />
この便利な属性は、AppSettings セクションでも使用できます。
8. String.Split メソッドの制限を克服する
String.Split は文字列を分割するための最も理想的な方法ですが、私たちが知る限り、「||」を使用できないなど、いくつかの制限もあります。または "::" 文字はキーボード上で一意の単一文字を区切り文字として使用する必要があります。この欠点は、RegEx ライブラリが提供する Split メソッドを使用して克服できます。次のコードは、RegEx Split を使用して "||" を区切ります。区切られた文字列。
<CODE> string delimitedString = "String.Split || RegEx.Split"); string[] ouputString = System.Text.RegularExpressions.Regex.Split( delimitedString, , System.Text.RegularExpressions.Regex.Escape("||")); </CODE>
9. 要素の HTML コード ビューとデザイン ビューの間の素早い切り替え (またはその逆)
アプリケーションを設計するとき、私たちは IDE で多くの時間を費やし、ほとんどの時間は HTML コンテンツに費やされます。 Visual Studio 2010 では、デザイン ビューと HTML コードをすばやく切り替える機能を提供します。
HTML ビューを使用している場合は、デザイン ビューで表示する要素を見つけてからデザイン ビューに切り替えると、表示する要素が選択されているはずです。さらに、プロパティ ウィンドウには選択した要素のプロパティが表示されます。要素。 。
同様に、デザインビューで要素を選択してコードビューに切り替えると、選択した要素に対応する HTML コードが強調表示されるはずです。
10. データベース内のデータを迅速に検索します
データ テーブルは行を選択するための Find メソッドと Select メソッドをサポートしていますが、DataView メソッドが提供する、作成されたインデックスを使用できるほど簡単ではありません。ソート列のほうが速いです。
これらのヒントが貴重なプログラミング時間を節約するのに役立つことを願っています。今すぐ試してみてください!
C# プログラミングと Visual Studio の使用に関するヒント (パート 2) については、PHP 中国語 Web サイトに注目してください。