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

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

7
C#Float式:結果のfloatをintにキャストするときの奇妙な動作
次の簡単なコードがあります: int speed1 = (int)(6.2f * 10); float tmp = 6.2f * 10; int speed2 = (int)tmp; speed1speed2同じ値でなければなりませんが、実際には次のようになっています。 speed1 = 61 speed2 = 62 キャストではなくMath.Roundを使用する必要があることはわかっていますが、値が異なる理由を理解したいと思います。 生成されたバイトコードを見ましたが、ストアとロードを除いて、オペコードは同じです。 私はjavaでも同じコードを試しましたが、62と62を正しく取得しました。 誰かがこれを説明できますか? 編集: 実際のコードでは、直接6.2f * 10ではなく、関数呼び出し*定数です。私は次のバイトコードを持っています: のためにspeed1: IL_01b3: ldloc.s V_8 IL_01b5: callvirt instance float32 myPackage.MyClass::getSpeed() IL_01ba: ldc.r4 10. IL_01bf: mul IL_01c0: conv.i4 IL_01c1: stloc.s …

9
インターフェース、実装、またはその両方にコメントしますか?
私たち全員が(私たちが気になることがあるとき!)私たちのインターフェースにコメントしていると思います。例えば /// <summary> /// Foo Interface /// </summary> public interface Foo { /// <summary> /// Will 'bar' /// </summary> /// <param name="wibble">Wibble factor</param> void Bar(string wibble); } 実装についてもコメントしますか(ライブラリーの一部としてクライアントに提供される場合もあります)?もしそうなら、どのようにしてこの2つの同期を保つのですか または、「ドキュメントのインターフェイスを表示」コメントを追加するだけですか? ありがとう
128 c#  java  comments  interface 

3
TypedReferenceが舞台裏にあるのはなぜですか?それはとても速くて安全です…ほとんど魔法です!
警告:この質問は少し異端です...宗教的なプログラマーは常に良い習慣を守っています。読んではいけません。:) TypedReferenceの使用が(暗黙的に、ドキュメントがないために)推奨されない理由を誰かが知っていますか? ジェネリックであってはならない関数を介してジェネリックパラメーターを渡す場合(object値の型が必要な場合は、過剰または低速である可能性があります)、不透明なポインターが必要な場合など、その使用方法が優れていることがわかりました。実行時に(を使用してArray.InternalGetReference)仕様が見つかる配列の要素にすばやくアクセスする必要がある場合に使用します。CLRはこのタイプの誤った使用さえも許可しないので、なぜそれが推奨されないのですか?安全ではないようです。 私が見つけた他の用途TypedReference: C#でジェネリックを「特殊化」します(これはタイプセーフです): static void foo<T>(ref T value) { //This is the ONLY way to treat value as int, without boxing/unboxing objects if (value is int) { __refvalue(__makeref(value), int) = 1; } else { value = default(T); } } ジェネリックポインターで動作するコードを記述する(これは、誤用すると非常に危険ですが、正しく使用すれば高速で安全です): //This bypasses the restriction that you can't have …
128 c#  typedreference 

7
XMLシリアル化-null値を非表示にする
標準の.NET Xmlシリアライザーを使用している場合、すべてのnull値を非表示にする方法はありますか?以下は、私のクラスの出力の例です。nullに設定されている場合、null許容整数を出力したくありません。 現在のXML出力: <?xml version="1.0" encoding="utf-8"?> <myClass> <myNullableInt p2:nil="true" xmlns:p2="http://www.w3.org/2001/XMLSchema-instance" /> <myOtherInt>-1</myOtherInt> </myClass> 私が欲しいもの: <?xml version="1.0" encoding="utf-8"?> <myClass> <myOtherInt>-1</myOtherInt> </myClass>

4
voidを返すこととタスクを返すことの違いは何ですか?
さまざまなC#非同期CTPサンプルを見るvoidと、を返す非同期関数と、非ジェネリックを返す関数がありTaskます。Task<MyType>非同期操作が完了したときに呼び出し元にデータを返すのにa を返すと便利な理由がわかりますが、これまでに見た関数の戻り値の型にTaskは、データを返さないものがあります。なぜ戻りませんvoidか?

10
C#で定数辞書を作成する
sからs への定数(実行時に変更されない)マッピングを作成する最も効率的な方法は何ですか?stringint 私はconst辞書を使ってみましたが、うまくいきませんでした。 適切なセマンティクスで不変のラッパーを実装することもできますが、それでも完全に正しいとは言えません。 質問した人のために、私は生成されたクラスにIDataErrorInfoを実装していて、記述子の配列にcolumnNameルックアップを行う方法を探しています。 スイッチで文字列を受け入れることを(テストではタイプミス!)気づかなかったので、これを使用します。ありがとう!

6
最終的にtry catchブロック内から戻るのは悪い習慣ですか?
だから今朝、次のようなコードに出くわしました。 try { x = SomeThingDangerous(); return x; } catch (Exception ex) { throw new DangerousException(ex); } finally { CleanUpDangerousStuff(); } これで、このコードは正常にコンパイルされ、正常に機能しますが、特に関連付けられた最終的なものがある場合は特に、tryブロック内から戻るのは適切ではないと感じます。 私の主な問題は、がそれ自身の例外を最終的にスローするとどうなるかです。あなたは返された変数を持っていますが、処理する例外も持っています...だから私は他の人がtryブロック内から戻ることについてどう思うか知りたいですか?


2
Razorビューでコメントを書く方法は?
MVCビューでコメントを書き込む方法。コメントは最終的なHTMLに送信されません(つまり、ブラウザー、応答)。次のようにしてコメントを付けることができます: <!--<a href="https://stackoverflow.com/">My comment</a> --> ただし、ブラウザのページソースコードに表示されます。 「.cshtml」ファイルにコメントを残して、内部で使用することはできますか?

9
Linqのリストから複数のフィールドを選択
ASP.NET C#には構造体があります。 public struct Data { public int item1; public int item2; public int category_id; public string category_name; } そして私はそれらのリストを持っています。category_idand を選択してcategory_name実行しDISTINCT、最後にORDERBYonにしcategory_nameます。 これが私が今持っているものです: List<Data> listObject = getData(); string[] catNames = listObject .Select(i=> i.category_name) .Distinct() .OrderByDescending(s => s) .ToArray(); これは明らかにカテゴリ名を取得するだけです。私の質問は、どのようにして複数のフィールドを取得し、どのデータ構造をこれに保存するのstring[]ですか? 編集 構造体のリストを使用することは難しいことではありません。選択を簡単にするためにバッキングデータ構造を変更することが望ましい場合(これらの多くを記述します)、喜んで推奨事項を採用します。
128 c#  linq  data-structures 

7
WPFにMain()はありませんか?
私はプログラミングに関しては初心者ですが、プログラムがMain()で始まるという共通のルールの1つだと確信していました。WPFプロジェクトを作成するときに表示されません。Main()はWPFで単に別の名前を付けていますか?
128 c#  wpf  c#-4.0  main 


4
LoaderExceptionプロパティを取得する方法は?
サービス参照の更新中にエラーメッセージが表示されます。 カスタムツールの警告:要求された1つ以上のタイプをロードできません。詳細については、LoaderExceptionsプロパティを取得してください。 LoaderExceptionプロパティを取得するにはどうすればよいですか? 更新:ドメインオブジェクトプロジェクトを再インポートすると、エラーがなくなりました。これで問題が解決した理由はわかりませんが、問題なく機能していると思います。
128 c#  .net  wcf 

14
MVC Web API:リクエストされたリソースに「Access-Control-Allow-Origin」ヘッダーがありません
私はこの記事に書かれているすべてを試しました:http : //www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api、しかし何もうまくいきません。angularJSを使用して別のドメインで使用するためにwebAPI2(MVC5)からデータを取得しようとしています。 私のコントローラーは次のようになります: namespace tapuzWebAPI.Controllers { [EnableCors(origins: "http://local.tapuz.co.il", headers: "*", methods: "*", SupportsCredentials = true)] [RoutePrefix("api/homepage")] public class HomePageController : ApiController { [HttpGet] [Route("GetMainItems")] //[ResponseType(typeof(Product))] public List<usp_MobileSelectTopSecondaryItemsByCategoryResult> GetMainItems() { HomePageDALcs dal = new HomePageDALcs(); //Three product added to display the data //HomePagePromotedItems.Value.Add(new HomePagePromotedItem.Value.FirstOrDefault((p) => p.ID == id)); List<usp_MobileSelectTopSecondaryItemsByCategoryResult> items …

16
JSON.NETでの逆シリアル化のためのキャストインターフェイス
さまざまなWebサイトからJSONオブジェクトを取り込み(情報のスクレイピングを考える)、それらをC#オブジェクトに変換するリーダーをセットアップしようとしています。私は現在、逆シリアル化プロセスにJSON.NETを使用しています。私が直面している問題は、クラス内のインターフェイスレベルのプロパティを処理する方法がわからないことです。だから自然の何か: public IThingy Thing エラーが発生します: IThingyタイプのインスタンスを作成できませんでした。タイプはインターフェースまたは抽象クラスであり、インスタンス化することはできません。 私が取り組んでいるコードは機密性が高く、ユニットテストが非常に重要であるため、ThingyではなくIThingyであることが比較的重要です。Thingyのような本格的なオブジェクトでは、アトミックテストスクリプトのオブジェクトをモックすることはできません。それらはインターフェースでなければなりません。 私はしばらくJSON.NETのドキュメントを調べてきましたが、このサイトでこれに関連して見つけた質問はすべて1年以上前のものです。何か助け? また、問題があれば、私のアプリは.NET 4.0で書かれています。
128 c#  .net  json  json.net 

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