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

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


9
MVCのList <object>からかみそりのドロップダウンリストを作成する
私はモデルを持っています: public class DbUserRole { public int UserRoleId { get; set; } public string UserRole { get; set; } } public class DbUserRoles { public List&lt;DbUserRole&gt; GetRoles() { BugnetReports RoleDropDown = new BugnetReports(); List&lt;DbUserRole&gt; Roles = new List&lt;DbUserRole&gt;(); DataSet table = RoleDropDown.userRoleDropDown(); foreach (DataRow item in table.Tables[0].Rows) { DbUserRole ur …

3
MaxHeight制約とMaxWidth制約で画像を均等にサイズ変更
を使用しSystem.Drawing.Imageます。 画像の幅または高さが最大値を超える場合は、それに比例してサイズを変更する必要があります。サイズ変更後、幅も高さも制限を超えていないことを確認する必要があります。 幅と高さは、自動的に最大値と最小値(最大サイズ)を超えないようにサイズ変更され、比率も維持されます。

6
IEnumerable <T>を実装する方法
次のように、非ジェネリックIEnumerableを実装する方法を知っています。 using System; using System.Collections; namespace ConsoleApplication33 { class Program { static void Main(string[] args) { MyObjects myObjects = new MyObjects(); myObjects[0] = new MyObject() { Foo = "Hello", Bar = 1 }; myObjects[1] = new MyObject() { Foo = "World", Bar = 2 }; foreach (MyObject x in myObjects) …
124 c#  .net  generics 

7
条件付きコンパイルとフレームワークターゲット
ターゲットフレームワークが新しいバージョンである場合、プロジェクトのコードを大幅に改善できるいくつかのマイナーな場所があります。C#での条件付きコンパイルをより効果的に活用して、必要に応じてこれらを切り替えることができるようにしたいと思います。 何かのようなもの: #if NET40 using FooXX = Foo40; #elif NET35 using FooXX = Foo35; #else NET20 using FooXX = Foo20; #endif これらのシンボルのいずれかが無料で提供されますか?これらのシンボルをプロジェクト構成の一部として挿入する必要がありますか?どのフレームワークがMSBuildのターゲットになっているのかを知ることができるので、それは十分簡単に​​思えます。 /p:DefineConstants="NET40" 人々はこの状況をどのように扱っていますか?異なる構成を作成していますか?コマンドラインから定数を渡していますか?
124 c#  .net-3.5  msbuild  .net-4.0 

8
Visual Studioの「すべての警告をエラーとして扱う...」
Visual Studioでは、[警告をエラーとして扱う]オプションを選択して、警告がある場合にコードがコンパイルされないようにすることができます。私たちのチームはこのオプションを使用していますが、警告として残しておきたい警告が2つあります。 警告を抑制するオプションがありますが、警告として表示したいので機能しません。 警告として扱う2つを除いて、すべてのC#警告番号のリストを[特定の警告]テキストボックスに入力するのが唯一の方法のようです。 メンテナンスの頭痛のほかに、このアプローチの最大の欠点は、いくつかの警告に番号がないため、明示的に参照できないことです。たとえば、「この参照を解決できませんでした。アセンブリ 'Data ....'が見つかりませんでした」 誰かがこれを行うためのより良い方法を知っていますか? なぜこれが有用なのかすぐにわからない人のために明確にします。ほとんどの警告がどのように機能するかを考えてください。彼らはあなたが書いたばかりのコードで何かが少しずれているとあなたに言っています。それらを修正するのに約10秒かかり、コードベースをよりクリーンに保ちます。 「廃止」警告はこれとは大きく異なります。時々それを修正することは、単に新しいメソッドシグネチャを消費することを意味します。ただし、クラス全体が古く、数十万行のコードに分散して使用されている場合、修正に数週間以上かかることがあります。あなたはビルドがその間破壊されることを望んでいませんが、間違いなくそれについての警告を見たいと思っています。これは単なる仮説的なケースではなく、私たちにも起こりました。 文字通りの "#warning"警告もユニークです。私は頻繁にしたいそれをチェックするために、私は、ビルドを壊したくはありません。
124 c#  msbuild 


4
StringFormatを使用してWPF XAMLバインディングに文字列を追加する
整数値(この場合は摂氏での温度)への一方向のバインディングを持つTextBlockを含むWPF 4アプリケーションがあります。XAMLは次のようになります。 &lt;TextBlock x:Name="textBlockTemperature"&gt; &lt;Run Text="{Binding CelsiusTemp, Mode=OneWay}"/&gt;&lt;/TextBlock&gt; これは実際の温度値を表示するのには問題なく機能しますが、数値ではなく°C(30ではなく30°C)が含まれるようにこの値をフォーマットしたいと思います。私はStringFormatについて読んでいて、次のようないくつかの一般的な例を見てきました。 // format the bound value as a currency &lt;TextBlock Text="{Binding Amount, StringFormat={}{0:C}}" /&gt; そして // preface the bound value with a string and format it as a currency &lt;TextBlock Text="{Binding Amount, StringFormat=Amount: {0:C}}"/&gt; 残念ながら、私が見た例では、私がしようとしているように、バインドされた値に文字列を追加していません。シンプルなものに違いないと思いますが、うまくいきません。誰でもそれを行う方法を私に説明できますか?


1
Roslyn SyntaxNodesは再利用されますか?
私はRoslyn CTPを調査してきましたが、これはExpression Tree APIと同様の問題を解決しますが、どちらも不変ですが、Roslynはまったく異なる方法でそうします。 Expressionノードは親ノードへの参照がなく、を使用して変更ExpressionVisitorされます。そのため、大きなパーツを再利用できます。 SyntaxNode反対側のRoslyn は親への参照を持っているため、すべてのノードは事実上、再利用できないブロックになります。、などのメソッドはUpdate、ReplaceNode変更を加えるために提供されています。 これはどこで終わりますか?Document?Project?ISolution?APIは、ボタンの代わりにツリーの段階的な変更を促進しますが、各ステップは完全なコピーを作成しますか? なぜ彼らはそのような選択をしたのですか?私が見逃している興味深いトリックはありますか?

3
ReSharper / C#で「デリゲート減算の結果は予測できません」?
myDelegate -= eventHandlerReSharper(バージョン6)の問題を使用する場合: デリゲートの減算の結果は予測できません この背後にある合理的な理由は、ここでJetBrainsによって説明されています。説明は理にかなっており、それを読んだ後、私は-デリゲートでの私の使用をすべて疑っています。 それでは、 ReSharperを不機嫌にすることなく、自動以外のイベントを作成できますか? または、これを実装するためのより良いおよび/または「正しい」方法はありますか? または、ReSharperを無視できますか? 簡略化したコードは次のとおりです。 public delegate void MyHandler (object sender); MyHandler _myEvent; public event MyHandler MyEvent { add { _myEvent += value; DoSomethingElse(); } remove { _myEvent -= value; // &lt;-- ReSharper warning here } }

8
文字列を分割してすべて1行に分割するにはどうすればよいですか?
この行を分割したい: string line = "First Name ; string ; firstName"; トリミングされたバージョンの配列に: "First Name" "string" "firstName" これをすべて1行で行うにはどうすればよいですか?次の場合、「タイプvoidを変換できません」というエラーが表示されます。 List&lt;string&gt; parts = line.Split(';').ToList().ForEach(p =&gt; p.Trim());
124 c#  .net  split  trim 

8
ラムダ式をプレーンなデリゲートパラメーターとして提供するときにキャストする必要がある理由
メソッドSystem.Windows.Forms.Control.Invoke(Delegate method)を取る なぜこれがコンパイル時エラーになるのですか? string str = "woop"; Invoke(() =&gt; this.Text = str); // Error: Cannot convert lambda expression to type 'System.Delegate' // because it is not a delegate type しかし、これはうまくいきます: string str = "woop"; Invoke((Action)(() =&gt; this.Text = str)); メソッドがプレーンなデリゲートを期待するとき?
124 c#  c#-3.0  delegates  lambda 


8
サブストリングを取得-特定の文字の前のすべて
文字列内の文字-の前にすべてを取得するための最良の方法を見つけようとしています。文字列の例を以下に示します。前の文字列の長さ-変化し、任意の長さにすることができます 223232-1.jpg 443-2.jpg 34443553-5.jpg ですから、開始インデックス0から-の直前までの値が必要です。したがって、部分文字列は223232、443、および34443553になります。
124 c# 

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