タグ付けされた質問 「c#」

C#(「seesharp」と発音)は、Microsoftによって開発された、静的に型指定された高レベルのマルチパラダイムプログラミング言語です。C#コードは通常、Microsoftの.NETファミリのツールとランタイムを対象としています。これには、.NET Framework、.NET Core、Xamarinなどが含まれます。このタグは、C#またはC#の正式な仕様で記述されたコードに関する質問に使用します。

10
C#ですべての#regions only(!)を折りたたむ(Visual Studio)
現在のドキュメントのすべての折りたたみ式アイテムを自動的に展開または折りたたむためのキーボードショートカットとメニューコマンドがいくつかあります。Ctrl+ M、 Ctrl+ Lは、最上位のネームスペースから内部のメソッドやコメントに至るまで、すべての折りたたみ式を再帰的に切り替えます。基本的に、左マージンに[+]アイコンがあるすべてのもの。Ctrl+ M、Ctrl+ Oは少し少なくなりますが、クラス内のメソッドやコメントには影響します。 具体的には折りたたみ式のみを考慮し#region、それ以外は何も考慮しない関数を探しています。名前空間、クラス、コメント、メソッドではありません。#regionキーワードで明示的にマークされている領域のみを折りたたみたいだけです。 そのための隠しショートカットや拡張機能はありますか? Visual Studio 2015(今のところRC)の場合は、キーボードソリューションを使用します。 誰かが理由を尋ねる場合:ファイルの概要を取得したいのですが、1つのリージョンの内部を見ようと決めたらすぐにすべての詳細を確認します。 更新: 2020年のソリューション この質問は多くの回答を受け取ったので、それらのいくつかは役に立たないものもあれば、時代遅れのものもあります。VisualStudio 2019の実用的なソリューションは、この過小評価されている回答にあります:https ://stackoverflow.com/a/58999093/143684


14
NET dllにgit commit hashを埋め込む
バージョンコントロールとしてGitを使用して、C#アプリケーションを構築しています。 アプリケーションをビルドするときに、最後のコミットハッシュを実行可能ファイルに自動的に埋め込む方法はありますか? たとえば、コンソールにコミットハッシュを出力すると、次のようになります。 class PrintCommitHash { private String lastCommitHash = ?? // What do I put here? static void Main(string[] args) { // Display the version number: System.Console.WriteLine(lastCommitHash ); } } デプロイした実行ファイルにはgitリポジトリにアクセスできないため、これはランタイムではなくビルド時に行う必要があることに注意してください。 C ++に関連する質問はここにあります。 編集 @mattanjaのリクエストに従って、私は自分のプロジェクトで使用するgitフックスクリプトを投稿しています。セットアップ: フックはLinuxシェルスクリプトで、次の場所に配置されています:path_to_project \ .git \ hooks msysgitを使用している場合、hooksフォルダーにはすでにいくつかのサンプルスクリプトが含まれています。gitでそれらを呼び出すようにするには、スクリプト名から「.sample」拡張子を削除します。 フックスクリプトの名前は、それらを呼び出すイベントと一致します。私の場合、ポストコミットとポストマージを変更しました。 私のAssemblyInfo.csファイルは、プロジェクトパスの直下にあります(.gitフォルダーと同じレベル)。23行ありますが、24行目はgitを使って生成しています。 私のlinux-shellは少し錆びているので、スクリプトは単にAssemblyInfo.csの最初の23行を一時ファイルに読み取り、gitハッシュを最後の行にエコーし、ファイルの名前をAssemblyInfo.csに戻します。これを行うにはもっと良い方法があると確信しています: #!/bin/sh cmt=$(git rev-list --max-count=1 HEAD) …
102 c#  git 

2
列挙型をList <string>に変換します
次の列挙型を文字列のリストに変換するにはどうすればよいですか? [Flags] public enum DataSourceTypes { None = 0, Grid = 1, ExcelFile = 2, ODBC = 4 }; 私はこの正確な質問を見つけることができませんでした。このEnum to Listが最も近いですが、特に欲しいですList&lt;string&gt;
102 c#  .net  enums  generic-list 

6
C#を使用したSVGからPNGへの変換[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 6年前休業。 この質問を改善する 私は、C#を使用して、SVG画像をPNGに変換しようとしましたが、あまり多くのコードを記述する必要はありません。誰もがこれを行うためのライブラリまたはサンプルコードを推奨できますか?
102 c#  .net  png  svg 

21
文字列内の2つの文字列の間の文字列を取得する
私は次のような文字列を持っています: "super exemple of string key : text I want to keep - end of my string" 私はちょうど間にある文字列を保持したい"key : "とし" - "。どうやってやるの?正規表現を使用する必要がありますか、それとも別の方法で実行できますか?
102 c#  regex  string 

5
C#でdoubleをintに変換する
コードには、intに変換する必要があるdoubleがあります。 double score = 8.6; int i1 = Convert.ToInt32(score); int i2 = (int)score; なぜ誰かが私に理由を説明できますかi1 != i2? 私が得る結果はそれです:i1 = 9とi2 = 8。
102 c#  int  double 

1
ラムダ式でnull伝播演算子を使用できないのはなぜですか?
私はコードでnull伝播演算子をよく使用します。コードが読みやすくなるためです。特に、長いクエリでは、使用されるすべてのクラスをnullチェックする必要がないためです。 次のコードは、ラムダでnull伝播演算子を使用できないコンパイルエラーをスローします。 var cnt = humans.AsQueryable().Count(a =&gt; a.House?[0].Price == 5000); エラー : エラーCS8072式ツリーのラムダにnullの伝播演算子を含めることはできません。 C#は、実際には他に何もできない場合、上記のコードを次のコードに簡単に変換できます。 var cnt = humans.AsQueryable().Count(a =&gt; a.House != null &amp;&amp; a.House[0].Price == 5000); C#が何もせず、単にコンパイラエラーをスローするのはなぜでしょうか。

8
C#の「is」演算子のパフォーマンス
高速なパフォーマンスを必要とするプログラムがあります。その内部ループの1つで、オブジェクトのタイプをテストして、特定のインターフェイスから継承するかどうかを確認する必要があります。 これを行う1つの方法は、CLRの組み込み型チェック機能を使用することです。最もエレガントな方法はおそらく「is」キーワードです。 if (obj is ISpecialType) 別のアプローチは、事前定義された列挙値を返す独自の仮想GetType()関数を基本クラスに与えることです(私の場合、実際には私はブール値のみが必要です)。その方法は高速ですが、エレガントではありません。 「is」キーワード専用のIL命令があると聞いたことがありますが、ネイティブアセンブリに変換したときに高速に実行されるわけではありません。「is」のパフォーマンスと他のメソッドのパフォーマンスについて洞察を共有できる人はいますか? 更新: すべての情報に基づいた回答をありがとう!答えの中にはいくつかの役立つポイントが広がっているようです。Andrewが「自動的にキャストを実行する」というポイントは不可欠ですが、Binary WorrierとIanが収集したパフォーマンスデータも非常に役立ちます。回答の1つがこの情報のすべてを含むように編集されているとすばらしいでしょう。
102 c#  performance  clr  gettype 

9
クエリパターンの実装が見つかりませんでした
私のSilverlightアプリケーションでは、LINQを使用してデータベース接続を作成しようとしています。まず、新しいLINQ to SQLクラスを追加し、「tblPersoon」というテーブルをその中にドラッグします。 次に、サービスファイルで次のクエリを実行します。 [OperationContract] public tblPersoon GetPersoonByID(string id) { var query = (from p in tblPersoon where p.id == id select p).Single(); しかし、tblPersoonでは、次のエラーが表示されます。 ソースタイプ 'SilverlightApplication1.Web.tblPersoon'のクエリパターンの実装が見つかりませんでした。「どこ」が見つかりません。 そして、私が以下を試したときでも: var query = (from p in tblPersoon select p).Single(); 「選択」が見つからないというエラーが表示されます。 私のテーブル用に生成されたクラスのコードはここにあります:http : //pastebin.com/edx3XRhi これは何が原因で、どうすればこれを解決できますか? ありがとうございました。
102 c#  sql  silverlight  wcf  linq 

8
タイプまたは名前空間名「Objects」は名前空間「System.Data」に存在しません
エンティティ、C#、およびSQL Serverを使用して、n層アプリを作成しています。すべてのDALコンポーネントに共通の基本クラスをいくつか作成しています。この基本クラスでは、エンティティオブジェクトによって継承されたObjectContext基本クラスの接続状態を処理します。 コンパイルすると、次のエラーがスローされます。 タイプまたは名前空間名「Objects」が名前空間「System.Data」に存在しません(アセンブリ参照がありませんか?) また、usingステートメントSystem.Data.Objectsも同じ理由で解決されません。 アセンブリを参照として追加しようとしましたが、アセンブリ参照の[.NET]タブにそれが見つかりませんでした。 何かご意見は?ありがとう!

6
C#でタイムスタンプを作成する関数
私は疑問に思っていました、日時からc#でタイムスタンプを作成する方法はありますか?Compact Frameworkでも機能するミリ秒の精度値が必要です(DateTime.ToBinary()がCFに存在しないため)。 私の問題は、この値をデータベースにとらわれない方法で保存したいので、後で並べ替えて、他の値よりも大きい値を見つけることができます。

10
Visual Studio:複数のビルド後コマンド?
Visual Studio 2008では、コマンドを宣言して、プロジェクトのビルド後のイベントにアタッチできます。多くの開発者と同様に、私は定期的にファイルをアプリケーション出力ディレクトリにxcopyするために使用しています。 1つのプロジェクト内で、2つの異なる場所から2つの異なる宛先にファイルをコピーする必要があるプロジェクトに取り組んでいます。つまり、同じビルド後のイベントから2つの異なるxcopyコマンドを呼び出す必要があります。ビルド後のイベントは1つのコマンドしか受け取らないようで、複数のコマンドを呼び出す必要がある場合は、コマンドを* .batファイルに入れて、ビルド後のイベントから呼び出す必要があります。 それは正しいですか、またはビルド後のイベントから2つのコマンドを呼び出す簡単な方法はありますか?よろしくお願いします。

17
条件付き?:(3項)演算子を使用する利点
標準のif-elseステートメントとは対照的に、?:演算子の利点と欠点は何ですか。明白なものは: 条件付き?:演算子 直接的な値の比較と割り当てを処理する場合、より簡潔で簡潔 if / elseコンストラクトほど柔軟ではないようです 標準のIf / Else より多くの状況に適用できます(関数呼び出しなど) 多くの場合、不必要に長い 読みやすさは、ステートメントによってそれぞれ異なります。最初に?:オペレーターに公開されてからしばらくの間、それがどのように機能するかを正確に説明するのに少し時間がかかりました。可能な限りそれを使用することをお勧めしますか、それとも私が多くの非プログラマーと作業しているのであれば、if / elseに固執することをお勧めしますか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.