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

C#は、Microsoftが.NETプラットフォームと並行して作成した、マルチパラダイムで管理されたガベージコレクションのオブジェクト指向プログラミング言語です。

2
C#はネイティブC ++コンパイラとマージされますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 この投稿によると: http://channel9.msdn.com/Forums/Coffeehouse/MS-working-on-a-same-compiler-for-C-AND-C--Not-in-incubation-but-for-production- この投稿にはどの程度の真実がありますか?それは筋金入りのC ++プログラマー(ゲーム開発者など)によって真剣に受け止められるべきですか?? 編集:この質問には別の目的があります... C#はC ++と後方互換性がありますか?
23 c#  c++ 

9
デリゲートとインターフェイス-さらに説明がありますか?
記事-インターフェイスの代わりにデリゲートを使用するタイミング(C#プログラミングガイド)を読んだ後 、以下の特定のポイントを理解するのに多少の助けが必要です。これらの例や詳細な説明はありますか? 次の場合にデリゲートを使用します。 イベンティングデザインパターンが使用されます。 静的メソッドをカプセル化することが望ましいです。 簡単な構成が望まれます。 クラスには、メソッドの複数の実装が必要な場合があります。 次の場合にインターフェースを使用します。 呼び出される可能性のある関連メソッドのグループがあります。 クラスには、メソッドの実装が1つだけ必要です。 私の質問は、 イベントデザインパターンとはどういう意味ですか? デリゲートを使用した場合、どのように構成が簡単になりますか? 呼び出される可能性のある関連メソッドのグループがある場合、インターフェースを使用します-それにはどんな利点がありますか? クラスがメソッドの実装を1つだけ必要とする場合、インターフェースを使用します。利点の点でそれはどのように正当化されますか?
23 c#  design  .net 

8
「using」キーワードを使用する場合のDRY原則の実装方法
次の方法を検討してください。 public List<Employee> GetAllEmployees() { using (Entities entities = new Entities()) { return entities.Employees.ToList(); } } public List<Job> GetAllJobs() { using (Entities entities = new Entities()) { return entities.Jobs.ToList(); } } public List<Task> GetAllTasksOfTheJob(Job job) { using (Entities entities = new Entities()) { return entities.Tasks.Where(t => t.JobId == job.Id).ToList(); } …

7
「var」およびヌル合体演算子「??」読みやすさを妨げることなく楽しまれる?
この質問は、Software Engineering Stack Exchangeで回答できるため、Code Review Stack Exchangeから移行されました。 8年前に移行され ました。 私は質問のタイトルが非常に主観的であることを知っていますが??、私は同僚によるオペレーターの使用に直面しましたvar。 ??演算子を使用するための引数は、コードの可読性を奪います。 私の質問は、使用を開始したときに同じことは起こりませんvarか?

13
保守性をどのように有意義に測定しますか?
コンテキスト:私は、すべてがMSショップのエンタープライズ開発者です。 コードやアプリケーションの保守性を客観的に測定するための良い方法を誰かがお勧めできますか? なぜ保守性があるのか:バグとコードカバレッジの数のみを対象とするグループの "品質"メトリックにうんざりしています。特に保守性を測定していない場合は、どちらのメトリックも簡単にゲームできます。近視眼と締め切りは、実際に対処されない膨大な量の技術的負債をもたらします。 なぜ客観的に測定できるのか:私は大企業グループで働いています。客観的に測定できない場合は、人々に説明責任を負わせたり、それを改善することはできません。主観的な測定は、発生しないか、一貫して発生しません。 私はVS2010コードメトリックスを見ていますが、誰か他の推奨事項があるかどうか疑問に思っています。

3
C#でunsigned intを使用しないようにする必要がありますか?
最近、C#で符号なし整数を使用することを考えました(他の「高レベル言語」についても同様の議論が言えると思います) 整数が必要なとき、私は通常整数のサイズのジレンマに直面していないとき、例はPersonクラスの年齢プロパティです(ただし、質問はプロパティに限定されません)。それを念頭に置いて、私が見る限り、符号付き整数( "int")よりも符号なし整数( "uint")を使用する利点は1つだけです。それは読みやすさです。年齢が正の数にしかならないという考えを表現したい場合は、年齢タイプをuintに設定することでこれを達成できます。 一方、符号なし整数の計算では、あらゆる種類のエラーが発生する可能性があり、2つの年齢を減算するなどの操作を行うことが難しくなります。(私はこれがJavaが符号なし整数を省略した理由の1つだと読んだ) C#の場合、セッターのガード句は2つの世界の最高のものを提供するソリューションになると考えることもできますが、たとえば、年齢が何らかの方法に渡される場合、これは適用できません。回避策は、Ageというクラスを定義し、プロパティageのみをそこに置くことですが、このパターンでは、Meに多くのクラスを作成させ、混乱の原因になります(他の開発者は、オブジェクトが単なるラッパーであるときそして、それがより洗練されたものである場合)。 この問題に関する一般的なベストプラクティスは何ですか?このタイプのシナリオにどのように対処すればよいですか?

2
ドメイン駆動設計-エンティティ問題の外部依存関係
Domain-Driven-Designを開始したいのですが、開始する前に解決したい問題がいくつかあります:) グループとユーザーがあり、ユーザーがグループに参加したい場合、groupsService.AddUserToGroup(group, user)メソッドを呼び出していると想像してください。DDDで行う必要がgroup.JoinUser(user)あります。 ユーザーを追加するための検証ルールがある場合、またはユーザーがグループに追加されたときに外部タスクを開始する必要がある場合に問題が発生します。これらのタスクを実行すると、エンティティが外部依存関係を持つことになります。 例としては、ユーザーが最大3グループまでしか参加できないという制限があります。これを検証するには、group.JoinUserメソッド内からのDB呼び出しが必要です。 しかし、エンティティがいくつかの外部サービス/クラスに依存しているという事実は、私にはそれほど自然で「自然」ではないようです。 DDDでこれに対処する適切な方法は何ですか?

8
原始的な強迫観念がコード臭ではないのはいつですか?
私は最近、原始的な強迫観念をコードの匂いとして説明する記事をたくさん読みました。 原始的な強迫観念を回避することには2つの利点があります。 ドメインモデルをより明確にします。たとえば、郵便番号を含む文字列ではなく郵便番号についてビジネスアナリストと話すことができます。 すべての検証は、アプリケーション全体ではなく1か所で行われます。 いつコードの匂いがするかを説明する記事がたくさんあります。たとえば、次のような投稿コードのプリミティブな強迫観念を取り除くことの利点を見ることができます。 public class Address { public ZipCode ZipCode { get; set; } } ZipCodeのコンストラクタは次のとおりです。 public ZipCode(string value) { // Perform regex matching to verify XXXXX or XXXXX-XXXX format _value = value; } 郵便番号が使用されるすべての場所にその検証ロジックを置くDRY原則を破ることになります。 ただし、次のオブジェクトについてはどうですか: 生年月日:気づきよりも大きく、今日の日付よりも小さいことを確認します。 給与:ゼロ以上であることを確認します。 DateOfBirthオブジェクトとSalaryオブジェクトを作成しますか?利点は、ドメインモデルを説明するときにそれらについて話すことができることです。ただし、これは多くの検証がないため、オーバーエンジニアリングの場合です。いつ、いつ原始的な強迫観念を取り除くべきでないかを説明するルールはありますか、可能であれば常にそれを行うべきですか? クラスの代わりに型エイリアスを作成できると思います。これは上記のポイント1に役立ちます。

7
.NETにDIを実装する「正しい」方法は何ですか?
比較的大きなアプリケーションに依存性注入を実装したいと考えていますが、経験はありません。私は、UnityやNinjectなどのIoCの概念といくつかの実装、および利用可能な依存関係インジェクターを研究しました。しかし、私を避けているものが1つあります。アプリケーションでインスタンス作成を整理するにはどうすればよいですか? 私が考えているのは、いくつかの特定のクラスタイプのオブジェクトを作成するロジックを含むいくつかの特定のファクトリを作成できるということです。基本的に、このクラスの静的カーネルインスタンスのNinject Get()メソッドを呼び出すメソッドを持つ静的クラス。 アプリケーションに依存性注入を実装する正しいアプローチでしょうか、それとも他の原則に従って実装する必要がありますか?

7
「Set」にはGetメソッドが必要ですか?
このC#クラスを作成しましょう(Javaでもほぼ同じです)。 public class MyClass { public string A {get; set;} public string B {get; set;} public override bool Equals(object obj) { var item = obj as MyClass; if (item == null || this.A == null || item.A == null) { return false; } return this.A.equals(item.A); } public override int GetHashCode() …

3
作成中は変更可能で、その後は変更できないメンバーを持つクラス
オブジェクトのコレクションを作成するアルゴリズムがあります。これらのオブジェクトは非常にわずかなものから開始されるため、作成中は変更可能ですが、アルゴリズム内のさまざまな場所にデータが入力されます。 アルゴリズムが完了した後、オブジェクトは決して変更されるべきではありませんが、ソフトウェアの他の部分によって消費されます。 これらのシナリオでは、以下に説明するように、クラスの2つのバージョンを使用することをお勧めしますか? 可変のものはアルゴリズムによって作成され、その後 アルゴリズムが完了すると、データは不変オブジェクトにコピーされ、返されます。
22 c# 

4
MVCが「懸念の分離」である場合、なぜRazor Syntaxが導入されたのですか?
私の質問は、Microsoftによって導入されたMVCデザインパターンとRazor Syntaxに関連しています。 MVCの設計パターンを学習している間、私はこの考えは「懸念の分離」として知られる原則に基づいていると言われました。 ただし、Razor構文を使用すると、ビューで C#を直接使用できます。 これは懸念事項の交差点ではありませんか?

2
ASP.NET MVCアプリケーションは、Entity Frameworkをモデルとして直接使用する必要がありますか?
私はVisual Studio 2013(MVC 5)で最初のMVCアプリケーションを構築していますが、モデルをセットアップする最適な方法については少しわかりません。 既存のデータベースからコードファーストを使用して、エンティティフレームワークモデルを生成しました。私の最初の本能は、ビューで使用されるモデルとなるいくつかの中間クラスを作成し、それらのクラスをエンティティフレームワーククラスと連携させることでした。 中間クラスを書いているとき、EFクラスがたまにプライベートセッターで行ったり、あるデータ型から別のデータ型にキャストしたりすることの多くを再実装していることに気付きました。それは無駄のように思えた。 エンティティフレームワーククラスをMVCアプリケーションのモデルとして直接使用するという一般的な規則はありますか?または、これらの中間クラスを構築するのに欠けている利点がありますか?

3
リストまたは配列を使用する必要がありますか?
アイテム番号のUPCを計算するために、Windowsフォームで作業しています。 一度に1つのアイテム番号/ UPCを処理するものを正常に作成しました。次に、複数のアイテム番号/ UPCに対して拡張および実行したいと思います。 リストを使い始めてみましたが、行き詰まってしまいます。ヘルパークラスを作成しました。 public class Codes { private string incrementedNumber; private string checkDigit; private string wholeNumber; private string wholeCodeNumber; private string itemNumber; public Codes(string itemNumber, string incrementedNumber, string checkDigit, string wholeNumber, string wholeCodeNumber) { this.incrementedNumber = incrementedNumber; this.checkDigit = checkDigit; this.wholeNumber = wholeNumber; this.wholeCodeNumber = wholeCodeNumber; this.itemNumber = …
22 c#  array  winforms  list 

6
アスペクト指向プログラミング:フレームワークの使用を開始するタイミング
グレッグ・ヤングがKISSに人々に警告するこの講演を見ました:Keep It Simple Stupid。 彼が提案したことの1つは、アスペクト指向プログラミングを行うために、フレームワークを必要としないということです。 彼は強力な制約を作成することから始めます。すべてのメソッドは1つだけのパラメーターを取ります(ただし、彼は部分適用を使用してこのパラメーターを少し緩めます)。 彼が与える例は、インターフェースを定義することです: public interface IConsumes<T> { void Consume(T message); } コマンドを発行したい場合: public class Command { public string SomeInformation; public int ID; public override string ToString() { return ID + " : " + SomeInformation + Environment.NewLine; } } コマンドは次のように実装されます。 public class CommandService : IConsumes<Command> { …

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