C# プログラミングと Visual Studio の使用に関するヒント (パート 2)
検索エンジンでこの記事を見つけた場合は、まずこのシリーズの最初の記事を読むことをお勧めします。今日は、このシリーズの 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 サイトに注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









c言語のシンボルの使用方法は、算術、割り当て、条件、ロジック、ビット演算子などをカバーします。算術演算子は基本的な数学的操作に使用されます。割り当てと追加、下位、乗算、除算の割り当てには、条件操作に使用されます。ポインター、ファイル終了マーカー、および非数値値。

Cでは、文字列でCharタイプが使用されます。1。単一の文字を保存します。 2。配列を使用して文字列を表し、ヌルターミネーターで終了します。 3。文字列操作関数を介して動作します。 4.キーボードから文字列を読み取りまたは出力します。

C言語では、以下などのエスケープシーケンスを通じて特殊文字が処理されます。\ nはラインブレークを表します。 \ tはタブ文字を意味します。 ESACEシーケンスまたは文字定数を使用して、Char C = '\ n'などの特殊文字を表します。バックスラッシュは2回逃げる必要があることに注意してください。さまざまなプラットフォームとコンパイラが異なるエスケープシーケンスを持っている場合があります。ドキュメントを参照してください。

C言語では、charとwchar_tの主な違いは文字エンコードです。CharはASCIIを使用するか、ASCIIを拡張し、WCHAR_TはUnicodeを使用します。 Charは1〜2バイトを占め、WCHAR_Tは2〜4バイトを占有します。 charは英語のテキストに適しており、wchar_tは多言語テキストに適しています。 CHARは広くサポートされており、WCHAR_TはコンパイラとオペレーティングシステムがUnicodeをサポートするかどうかに依存します。 CHARの文字範囲は限られており、WCHAR_Tの文字範囲が大きく、特別な機能が算術演算に使用されます。

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

C言語では、charタイプの変換は、キャスト:キャスト文字を使用することにより、別のタイプに直接変換できます。自動タイプ変換:あるタイプのデータが別のタイプの値に対応できる場合、コンパイラは自動的に変換します。

C言語に組み込みの合計機能はないため、自分で書く必要があります。合計は、配列を通過して要素を蓄積することで達成できます。ループバージョン:合計は、ループとアレイの長さを使用して計算されます。ポインターバージョン:ポインターを使用してアレイ要素を指し示し、効率的な合計が自己概要ポインターを通じて達成されます。アレイバージョンを動的に割り当てます:[アレイ]を動的に割り当ててメモリを自分で管理し、メモリの漏れを防ぐために割り当てられたメモリが解放されます。

Char Arrayは文字シーケンスをC言語で保存し、char array_name [size]として宣言されます。アクセス要素はサブスクリプト演算子に渡され、要素は文字列のエンドポイントを表すnullターミネーター「\ 0」で終了します。 C言語は、strlen()、strcpy()、strcat()、strcmp()など、さまざまな文字列操作関数を提供します。
