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

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


3
「キャッチ、いつ」で例外をキャッチする
特定の条件が満たされたときにキャッチハンドラーを実行できるC#のこの新機能を見つけました。 int i = 0; try { throw new ArgumentNullException(nameof(i)); } catch (ArgumentNullException e) when (i == 1) { Console.WriteLine("Caught Argument Null Exception"); } これがいつ役立つかを理解しようとしています。 次のようなシナリオが考えられます。 try { DatabaseUpdate() } catch (SQLException e) when (driver == "MySQL") { //MySQL specific error handling and wrapping up the exception } catch (SQLException …

4
構造を比較するときに、このアサートがフォーマット例外をスローするのはなぜですか?
2つのSystem.Drawing.Size構造が等しいことをアサートしようとしていますが、予期されるアサートエラーの代わりにフォーマット例外が発生します。 [TestMethod] public void AssertStructs() { var struct1 = new Size(0, 0); var struct2 = new Size(1, 1); //This throws a format exception, "System.FormatException: Input string was not in a correct format." Assert.AreEqual(struct1, struct2, "Failed. Expected {0}, actually it is {1}", struct1, struct2); //This assert fails properly, "Failed. Expected {Width=0, …

8
GetType()は嘘をつきますか?
数日前にSOで質問された次の質問に基づいて:GetType()とポリモーフィズム、およびEric Lippertの回答を読んで、GetType()仮想化しないことでオブジェクトがそのについて嘘をついていないことを本当に保証するかと考え始めましたType。 具体的には、エリックの答えは次のように述べています: フレームワークの設計者は、オブジェクトをその型について偽ることができるようにするなど、同じ型の他の3つのメソッドと一貫性を持たせるなど、非常に危険な機能を追加しません。 さて、問題は次のとおりです。その型について偽りのないオブジェクトを、すぐに明確にせずに作成できますか?私はここで深刻な誤りを犯している可能性があり、それが事実である場合は説明が必要ですが、次のコードを検討してください。 public interface IFoo { Type GetType(); } 上記のインターフェースの次の2つの実装: public class BadFoo : IFoo { Type IFoo.GetType() { return typeof(int); } } public class NiceFoo : IFoo { } 次に、次の簡単なプログラムを実行すると、 static void Main(string[] args) { IFoo badFoo = new BadFoo(); IFoo niceFoo = new NiceFoo(); Console.WriteLine("BadFoo …
94 c#  types 

3
C#/ WinFormsで多言語アプリケーションを作成するためのベストプラクティス?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 これが当てはまる小さなプロジェクトに取り組む必要があるため、C#で複数の言語に適したアプリケーションを作成することを検討してきました。これを行うには、基本的に2つの方法があります。 フォームのLocalizableプロパティをtrueに設定し、Languageプロパティを設定して、すべてのラベルなどを入力すると、「完了」します。これで私が目にする主な欠点は、フォームの一部ではない他のものを複数の言語に対応させる方法です(ポップアップウィンドウ、ログファイル、ウィンドウなど)。 「Lang.en-us.resx」などのリソースファイルを作成し、「Lang.nl-nl.resx」などの言語ごとに1つ作成して、文字列で埋めます。IDEは自動的にクラスを生成するようですので、コードではLang.SomeTextを使用できます。これで私が目にする最大の欠点は、すべてのフォームですべてのラベルと他のキャプションをコードで自分で設定する必要があることです(そして、データバインディングがこれらのリソースで機能していないようです)。 ただし、これを行う方法は他にもあると思います。 それで、ベストプラクティスは何ですか?小さなアプリケーション(いくつかのフォーム、データベース接続など)に最も簡単なものは何ですか?また、大きなアプリケーションに最適なものは何ですか?

11
Linq OrderBy引数を動的に指定するにはどうすればよいですか?
orderbyパラメータとして受け取る値を使用して、渡された引数を指定するにはどうすればよいですか? 例: List<Student> existingStudends = new List<Student>{ new Student {...}, new Student {...}} 現在の実装: List<Student> orderbyAddress = existingStudends.OrderBy(c => c.Address).ToList(); の代わりにc.Address、それをパラメーターとしてどのように取ることができますか? 例 string param = "City"; List<Student> orderbyAddress = existingStudends.OrderByDescending(c => param).ToList();
94 c#  linq 

5
Linq Queryが「System.Object型の定数値を作成できません...」をスローし続けるのはなぜですか?
次にコードサンプルを示します。 private void loadCustomer(int custIdToQuery) { var dbContext = new SampleDB(); try { var customerContext = from t in dbContext.tblCustomers // keeps throwing: where t.CustID.Equals(custIdToQuery) // Unable to create a constant value of type 'System.Object'. select new // Only primitive types ('such as Int32, String, and Guid') { // are …

9
Windows GUI:WPFまたはWinRT(2015以降)
私は、Windowsの世界でGUIを構築するときに使用するさまざまなテクノロジーの概要を取得しようとしています。 コンテキストとして、私は少し2Dプラットフォームのマルチプレイヤーゲームを構築しています。(学習目的のためだけに..) 私の先生は、WPFは正しい方法だと思っていますが、Windowsフォームとしか比較していないようです。 私の理解不足は、ここ2015年にWindowsフォームが完全に死んでいるということですか? この他のスタックオーバーの質問では、WinRT + XAMLはMetro GUIのビルド(ウィンドウ8タイルのこと!) Windows 8ランタイム(WinRT / Windowsストアアプリ/ Windows 10ユニバーサルアプリ)は、SilverlightやWPFと比較してどうですか。 デスクトップは、古いアプリが存在する場所です(赤。WFP)。 新しいクラスのアプリケーションであるMetroアプリケーションは、VB.NET、C#、C ++など、さまざまな方法で構築できます。これらの3つの言語オプションは、UIを構築するためにXAMLを使用できます。もう1つの方法は、UIとアプリケーションコードの両方の開発にJavaScript / HTML5 / CSSを使用することです。 私の本当の質問は次のとおりです。ウィンドウの世界でGUIを作成するための良い方法はありませんか? そうでない場合は、Window 7、Window 8(デスクトップおよびメトロ)、Window Phone(およびWindows 10!)、さらにはx-boxでどのテクノロジを使用すればよいでしょうか。 この方法で比較するのは異なるテクノロジーですか? 時間を投資するのに適切なことは何だと思いますか?

10
Visual Studioのホットキーはときどき変化します。具体的には、ビルドではF6とCtrl-Shift-Bです。どうして?
私はいつもF6自分のプロジェクトをビルドするように強く求めています。突然、私のVisual Studioのインスタンスのいくつかは、私が使用することを望んでいますCtrl- - 。Shift B「から、メニューオプションの変更の実際のテキスト-それは関連のキーボードではありませんF6」を「Ctrl- Shift- B」。 修正方法についての回答、およびこれを引き起こす原因は何ですか?

16
重複キーを許可するC#の並べ替え可能なコレクション
さまざまなオブジェクトがレポートに表示されるシーケンスを設定するプログラムを書いています。シーケンスは、ExcelスプレッドシートのY位置(セル)です。 コードのデモ部分は以下のとおりです。私が達成したいのは、コレクションを作成することです。これにより、複数のオブジェクトを追加でき、シーケンスに基づいてソートされたコレクションを取得できます。 SortedList list = new SortedList(); Header h = new Header(); h.XPos = 1; h.name = "Header_1"; list.Add(h.XPos, h); h = new Header(); h.XPos = 1; h.name = "Header_2"; list.Add(h.XPos, h); SortedListはこれを許可しないことを知っているので、代替を探していました。重複を排除したくないので、すでに試しましたList<KeyValuePair<int, object>>。 ありがとう。

7
C#ジェネリックのvoid?
リクエストを受け取り、レスポンスを提供する汎用メソッドがあります。 public Tres DoSomething<Tres, Treq>(Tres response, Treq request) {/*stuff*/} ただし、リクエストに対する応答が常に必要なわけではありません。また、応答を取得するために常にリクエストデータをフィードする必要もありません。また、マイナーな変更を行うためにメソッド全体をコピーして貼り付ける必要はありません。私が欲しいのは、これを行うことができることです: public Tre DoSomething<Tres>(Tres response) { return DoSomething<Tres, void>(response, null); } これは何らかの方法で実現可能ですか?具体的にはvoidを使用してもうまくいかないようですが、類似のものを見つけたいと思っています。
94 c#  generics 

2
「フォールド」LINQ拡張メソッドはどこにありますか?
MSDNのLinqサンプルで、使用したいFold()と呼ばれるきちんとしたメソッドを見つけました。彼らの例: double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 }; double product = doubles.Fold((runningProduct, nextFactor) => runningProduct * nextFactor); 残念ながら、私はこれを彼らの例でも自分のコードでもコンパイルすることができず、このメソッドについて言及しているMSDNの他の場所(EnumerableまたはArray拡張メソッドなど)を見つけることができません。私が得るエラーは、単純な古い「それについて何も知らない」エラーです: error CS1061: 'System.Array' does not contain a definition for 'Fold' and no extension method 'Fold' accepting a first argument of type 'System.Array' could be found (are you missing a …


7
Path.Combine絶対パスと相対パス文字列
を使用して、Windowsパスと相対パスを結合しようとしていPath.Combineます。 ただし、の代わりにPath.Combine(@"C:\blah",@"..\bling")戻ります。C:\blah\..\blingC:\bling\ 私の相対パスリゾルバを作成せずにこれを実現する方法を知っている人はいますか(難しいことではありません)。
94 c#  .net  windows  path  filesystems 

12
「コンパイラーが必要なメンバーがありません」というエラーがコードにほとんど変更を加えずに複数回スローされる
今日、実行しているC#MVCサイトにいくつかの変更をデプロイした後、いくつかの変更を加えるために戻って、このエラーに遭遇しました。 コンパイラーが必要なメンバーがありませんSystem.Runtime.CompilerServices.ExtensionAttribute..ctor エラーは、説明だけではなく、少しあいまいです(参照するファイル、行、または列はなく、プロジェクトのみです)。また、エラーを合計20回スローします。デプロイしたとき(当時は完全に機能していました)と今の間にコードに加えた変更は3つだけです。変更を元に戻しましたが、それでも同じエラーがスローされ、意味がありません。 SOやGoogleでこのエラーに関する多くの情報を見つけられませんでしたが、この解決策といくつかのMonoプロジェクトエラーへの参照(私はMonoを使用していません)を除きます。上記のガイが提供するソリューションでは、コンパイラが参照を解決できるようにするクラス定義を追加する必要があります。この時点までそれをする必要がなかったので、特にこれをしたくはありません。コードを濁らせてしまいます。 誰かがこれを以前に遭遇したことがあれば、ちょうど興味があります。前もって感謝します!
94 c#  asp.net-mvc 

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