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

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

9
LINQスタイルの設定[終了]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 私は毎日のプログラミングでLINQを使用するようになりました。実際、明示的なループを使用することはほとんどありません。しかし、構文のようなSQLはもう使用しないことがわかりました。拡張機能を使用するだけです。ではなく、言って: from x in y select datatransform where filter 私が使う: x.Where(c => filter).Select(c => datatransform) どのスタイルのLINQを好みますか?また、チームの他のどのスタイルに満足していますか?
21 c#  coding-style  linq 

11
使用している継続的インテグレーションフレームワークとその理由 [閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 そこにはかなりの数の異なる継続的インテグレーション(CI)フレームワークがあり、どれが最も人気があるのだろうかと思っています。勤務している企業でどのフレームワークを使用しましたか? あるCIフレームワークが他のCIフレームワークよりも人気がある理由はありますか?おそらく、それが提供する機能、それに統合されるもの、またはその単なるマーケティングによるものでしょうか? rubyやpythonよりも、Javaと.netの世界では継続的インテグレーションがより多く使用されているようです。どうしてこれなの?

16
C#開発者は1か月に何行のコードを生成できますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 私の職場の幹部が私と私の開発者グループに質問をしました。 C#開発者は1か月に何行のコードを生成できますか? 古いシステムをC#に移植する予定でしたが、プロジェクトの計画の一環としてこの方法を望んでいます。 ある(明らかに信用できる)情報源から、彼は「10 SLOC / 月」と答えましたが、彼はそれに満足していませんでした。 グループは、状況の長いリストに依存するため、これを指定することはほとんど不可能であることに同意しました。しかし、私たちは彼にもっと合った答えを考え出さなければ、その男性は去らない(または私たちに非常に失望しない)と言うことができました。そこで彼は「10 SLOC / 日」という何倍も良い答えを残しました この質問に答えられますか?(オフハンドまたは何らかの分析を含む)

9
新しいプログラマーに例外処理を教える方法は?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 例外処理をプログラマーに教える方法を教えてください。他のすべてのこと-データ構造、ASP.NET、WinForms、WPF、WCF-を簡単に教えられます。名前を付ければ、すべてが簡単に教えられます。 例外処理では、try-catch-finallyを教えることは、例外処理の構文的な性質にすぎません。 ただし、教えるべきことは-コードのどの部分をtryブロックに入れますか?catchブロックで何をしますか? 例で説明しましょう。 Windows Formsプロジェクト(小さなユーティリティ)で作業しており、3つの異なるプロジェクトで以下のように設計しました。 UILayer BusinessLayer DataLayer DataLayerで例外(XDocumentをロードすると例外がスローされると言います)が発生した場合(UILayerがBusinessLayerを呼び出し、BusinessLayerがDataLayerを呼び出します)、次のようにしますか? //In DataLayer try { XDocument xd_XmlDocument = XDocument.Load("systems.xml"); } catch(Exception ex) { throw ex; } BusinessLayerで再びスローされ、ログファイルに書き込むUILayerでキャッチされるのはどれですか? これはあなたが例外処理をどのように行っているのですか?

10
メール通知を設定するためのベストプラクティスとエチケット
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 Webサイトの顧客が購読する電子メールアラートを設定する場合、どのようなエチケットのルールに従う必要がありますか? 私は頭の上のいくつかを考えることができます: ユーザーはオプトアウトできます テキストのみ(または味のあるリモートイメージ) 週に1回以上送信されない クライアントは、メールの受信対象をきめ細かく制御できます(関心のあるもののみを受信します) 他に考慮すべき点は何ですか? プログラミングの観点から、電子メール通知を設定および実行するための最良の方法は何ですか? ASP.NETサービスを使用する必要がありますか?Windowsサービス?どちらに落とし穴がありますか? 送信された電子メールをログに記録するにはどうすればよいですか?それらが受信されたかどうかは気にしませんが、メールを送信したかどうかを証明する必要があります。

3
ソースコードアクセスを使用した社内NuGetパッケージの管理
社内のプロジェクトを共有したい社内ライブラリがたくさんあります。これらはいくつかの要件です: ライブラリソースは、エンドプロジェクトから分離されたリポジトリに保存されます 終了プロジェクトには、NuGetを介したライブラリが含まれます エンドプロジェクトでの作業中に、任意のライブラリのソースコードを簡単に検査できる必要があります プライベートNuGetリポジトリの設定は問題ではありませんが、ソースの管理は問題です。私たちは、ソースサーバを経由してソースを公開しようとしましたが、それはちょっとあなたが定義/実装に移動しようとすると、外部コードのデバッグ中にVSは、ソースをダウンロードし、ではない:作品ではなく、かなり。基本的に、デバッグ時にのみソースコードにアクセスできますが、これは必要なものではありません。 したがって、質問は次のとおりです。 同じレポ/ソリューションにコードを入れる必要なく、内部ライブラリのソースコードへのアクセスを提供する方法が存在します VSがデバッグだけでなくナビゲーションにもシンボルを使用するように、Symbolサーバー/ NuGetフィードコンボを設定する方法はありますか? ReSharper /その他のアドインの使用はオプションです。

4
関数をパラメーターとして取る関数は、それらの関数へのパラメーターもパラメーターとして取る必要がありますか?
多くの場合、データアクセスを簡単にモックでき、アクセスするデータを決定するパラメーターを受け入れる署名を提供するため、このような関数を作成していることに気付きます。 public static string GetFormattedRate( Func<string, RateType>> getRate, string rateKey) { var rate = getRate(rateKey); var formattedRate = rate.DollarsPerMonth.ToString("C0"); return formattedRate; } または public static string GetFormattedRate( Func<RateType, string> formatRate, Func<string, RateType>> getRate, string rateKey) { var rate = getRate(rateKey); var formattedRate = formatRate(rate); return formattedRate; } 次に、私はそれを次のように使用します: using FormatterModule; …

8
不変オブジェクトで引数の検証とフィールドの初期化をテストする簡単な方法はありますか?
私のドメインは、次のような多くの単純な不変のクラスで構成されています。 public class Person { public string FullName { get; } public string NameAtBirth { get; } public string TaxId { get; } public PhoneNumber PhoneNumber { get; } public Address Address { get; } public Person( string fullName, string nameAtBirth, string taxId, PhoneNumber phoneNumber, Address address) { if (fullName …
20 c#  unit-testing 

1
あなたのコードで複数形タンタムを扱うための標準は何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 複数形と単数形が同じ変数を使用する場合、どのように名前を付けますか?そこに標準はありますか? 例えば: Series[] series // Plural Series series // Singular 詳細: 具体的に言うと、シリーズのコレクションは(JSONフォーマットのため)シリーズと呼ばれる必要がありますSeries s。コレクションに追加される単数形のシリーズに名前を付けることを検討してください。 次のように: List<Series> series = new List<Series>(); Series s; while (someBool) { s = new Series(); s.Name = "Name"; while (anotherBool) { s.AddValue(someValue); } series.Add(s); }

3
ジェネリックと共通のインターフェース?
前回ジェネリッククラスを書いたときのことは覚えていません。何かを考えてから必要になると思うたびに、結論を出します。 この質問に対する2番目の答えは、明確化を求めることでした(まだコメントできないので、新しい質問をしました)。 ジェネリックが必要な場合の例として、与えられたコードを取り上げましょう。 public class Repository<T> where T : class, IBusinessOBject { T Get(int id) void Save(T obj); void Delete(T obj); } 型の制約があります: IBusinessObject 私の通常の考え方は次のとおりです。クラスはuse IBusinessObjectに制限されているため、これを使用するクラスもそうRepositoryです。リポジトリはこれらを保存します。IBusinessObjectほとんどの場合、これのクライアントはインターフェースをRepository介してオブジェクトを取得および使用したいと思うでしょうIBusinessObject。それではなぜ public class Repository { IBusinessOBject Get(int id) void Save(IBusinessOBject obj); void Delete(IBusinessOBject obj); } また、この例は、単なる別のコレクションタイプであり、ジェネリックコレクションはクラシックであるため、良くありません。この場合、型制約も奇妙に見えます。 実際、この例class Repository<T> where T : class, IBusinessbBjectはclass BusinessObjectRepository私によく似ています。これはジェネリックが修正するために作られたものです。 要点は、ジェネリックはコレクション以外のすべてに適しているので、クラス内でジェネリック型パラメーターの代わりにこの型制約を使用するように、型制約を特殊化することはありませんか?

7
「SomeClass」や「SomeClassInfo」など、「Info」という接尾辞を持つクラスの命名の背後にある考え方は何ですか?
私は物理デバイスを扱うプロジェクトに取り組んでおり、このプロジェクトのいくつかのクラスに適切な名前を付ける方法として混乱しています。 実際のデバイス(センサーとレシーバー)を考慮することと、ソフトウェアでそれらを表現することは別のことであるため、「Info」という接尾辞の名前パターンでクラスに名前を付けることを考えています。 たとえば、a Sensorは実際のセンサーを表すクラスですが(実際に動作するデバイスに実際に接続されている場合)、SensorInfoそのようなセンサーの特性のみを表すために使用されます。たとえば、ファイルの保存時に、をシリアル化するのではSensorInfoなく、ファイルヘッダーにをシリアル化しますSensor。これは意味がありません。 しかし、今私は混乱しています。なぜなら、オブジェクトのライフサイクルには、どちらを使用するべきか、どのように別のものを取得するか、または両方のバリアントを実際に1つのクラスのみに折りたたむかどうかを判断できない中間点があるためです。 また、あまりにも一般的なEmployeeクラスの例は、明らかに実在の人物の表現にすぎませんがEmployeeInfo、私の知る限り、クラスに名前を付けることを提案する人はいません。 私が使用している言語は.NETです。この命名パターンは、これらのクラスの例として、フレームワーク全体で共通しているようです。 DirectoryおよびDirectoryInfoクラス; FileおよびFileInfoクラス; ConnectionInfoクラス(対応するConnectionクラスなし); DeviceInfoクラス(対応するDeviceクラスなし); だから私の質問は次のとおりです。この命名パターンを使用することについて共通の根拠がありますか?名前のペア(ThingとThingInfo)を使用するのが理にかなっている場合ThingInfoや、Thingクラスが存在しない、またはクラスが存在しない他の場合がありますか?

7
VBAからC#に移行するチームメンバーの質問
バックグラウンド 昨年、約10人のユーザーのビジネス計画に使用するツールの作成を依頼されました。これは、作業を「下請け」する別のITチームに代わって行われ、プロジェクトの締め切りが彼らの側で少し計画外であるため、私はそれを少し急いで実装しなければなりませんでした。 当時、私たちは、VBAを使用してExcelブックを作成し、ユーザーがこのVBAが強化されたブックをイントラネットからダウンロードしてPCで使用するのが最も簡単な方法であると判断しました。この場合、Excelは制約でした。使用する計画システム(データベース)は、計画ワークブックを開くと同時にロードする必要があるExcelアドインを介してのみ対話できるためです。ただし、当時のVBAは制約ではありませんでした。 約4,000行のVBAコードを作成したワークブックで、データレイヤーとプレゼンテーションレイヤーを分離しようとしましたが、プロジェクトの締め切りのためにすべてのケースでできませんでした。正直に言って、このワークブックを作成することを誇りに思っていますが、同時に、コーディングとユーザーへの展開の両方の面で、より良くできたという点で少しがっかりしています。 今日 今日に戻ると、ITチームが再び同じようなワークブックをリクエストするようになりました(したがって、上記の他のワークブックの一部を再利用できます)が、今回ははるかに複雑で、より多くのユーザーに使用されます(約200)。 ただし、今回は少し計画が良く、計画を立てる時間がもう少しあることがわかります。これに基づいて、100人のユーザー向けのプログラミングは10人のユーザー向けよりも影響が大きいため、ソリューションとインフラストラクチャについて考えました。したがって、既存のコードをC#ソリューションに移行して、コードをより洗練された方法で管理できるようにすることを検討することをチームに提案しました。VSTO / Excel-DNAを使用して作成され、ユーザーに展開できるアドインとしてまだ検討中です。 私はこれを2週間前にITチームと話し合い、すべてが順調であるように見えましたが、昨日まで、チームの1人(VBAまたはC#を知らない)から、この新しいプロジェクトをC#で開始するのではなく、前と同じアプローチ。彼らの懸念のいくつかは次のとおりです。 これはかなり重要なプロジェクトであるため、動作する必要があります。C#ソリューションは、既存のVBAベースのソリューションほど安定しておらず、動作しません。 VBAソリューションで行った[I]処理を破棄し、C#でゼロから再作成する必要があります。 誰かがVBAとC#の2つの別々のソリューションをサポートする必要があります。[実際、彼らは現在サポートのための誰かを持っていません、私は通常介入します]。 今、私は彼らの懸念のいくつかをある程度理解することができますが、次のステップと彼らに何を戻すべきかについて決定する必要があります。個人的には、C#で実装したいと思います。なぜなら、このような「エンタープライズ」ソリューションを構築する方が良いと思うからです。さらに、私はこの機会にC#のスキルを磨きたいと思います。私は現在C#の能力がVBAほどではないので、このようなプロジェクトを「次のレベル」に引き上げたいと思っています。 私は、C#ソリューションがこのプロジェクトに適していると確信させるために使用できるポイントのリストを用意しました。 単体テスト。 ソース管理。 コードのドキュメント-他のサポート担当者への知識の伝達。 コーディング規則の改善-ReSharperなどを使用して、命名と構造を強化できます。 IDEの改善-エラーの強調表示によるミスの減少。 アセンブリによるモジュール性の向上-将来のツールでの再利用を促進できます。 管理された展開-このツールの使用者を制御できます。 質問:説得するために他にどのような点を追加できますか?それとも、このプロジェクトで噛むことができる以上に噛み砕こうとしていますか?とにかく静かにしてVBAでやるべきですか? 「新しい」または「クールな」と思われるため、新しい言語に移行するだけでは判断の根拠にならないため、それを判断ポイントとして含めることを拒否しています。 また、私は言語としてのC#とVBAのリテラル比較を求めていません。SOには多くの比較があるからです。

6
整数のラップアラウンドを「元に戻す」
数年前に興味深い理論上の問題に遭遇しました。私は解決策を見つけたことがなく、寝るときも悩み続けます。 xと呼ばれるintに数値を保持する(C#)アプリケーションがあるとします。(xの値は固定されていません)。プログラムが実行されると、xに33が掛けられ、ファイルに書き込まれます。 基本的なソースコードは次のようになります。 int x = getSomeInt(); x = x * 33; file.WriteLine(x); // Writes x to the file in decimal format 数年後、Xの元の値が必要であることを発見します。一部の計算は簡単です。ファイル内の数値を33で除算するだけです。ただし、他の場合では、Xが十分に大きいため、乗算によって整数オーバーフローが発生します。ドキュメントによると、C#は数値が未満になるまで高位ビットを切り捨てint.MaxValueます。この場合、次のいずれかが可能ですか? X自体を回復するか Xの可能な値のリストを回復しますか? 単純な加算のケースが機能するため(基本的にXに10を加算してラップすると、10を減算してXで終了することができるので、一方または両方が可能になるはずです(私のロジックは確かに欠陥がある可能性があります) )そして、乗算は単純に繰り返される加算です。また、Xがすべての場合に同じ値-定数33で乗算されるという事実も役立ちます(私は信じています)。 これは何年も奇妙な瞬間に私の頭蓋骨の周りで踊っています。それは私に起こるでしょう、私はそれを熟考しようといくつかの時間を費やすでしょう、そして私はそれを数ヶ月間忘れます。この問題を追いかけるのはうんざりです!誰でも洞察を提供できますか? (サイドノート:私は本当にこれにタグを付ける方法を知りません。提案を歓迎します。) 編集: Xの可能な値のリストを取得できる場合、元の値に絞り込むのに役立つ他のテストがあることを明確にしましょう。
20 c# 

3
TDDとリファクタリングの難しさ(または-なぜこれが本来よりも痛いのか?)
TDDアプローチを使用することを自分で学びたいと思っていたので、しばらくの間、やりたいプロジェクトがありました。大規模なプロジェクトではなかったので、TDDの良い候補になると思いました。しかし、何かがおかしくなったように感じます。例を挙げましょう: 高レベルでは、私のプロジェクトはMicrosoft OneNoteのアドインであり、プロジェクトをより簡単に追跡および管理できます。また、いつか自分のカスタムストレージとバックエンドを構築することにした場合に備えて、このためのビジネスロジックをOneNoteから可能な限り切り離したままにしておきたいと考えました。 最初に、基本的な平易な言葉の受け入れテストから始めて、最初の機能で何をしたいかを概説しました。これは次のようなものです(簡潔にするために説明を省略しています)。 ユーザーがプロジェクトの作成をクリックします プロジェクトのタイトルにユーザーが入力する プロジェクトが正しく作成されたことを確認します UIのものといくつかの中間計画をスキップして、最初のユニットテストに行きます。 [TestMethod] public void CreateProject_BasicParameters_ProjectIsValid() { var testController = new Controller(); Project newProject = testController(A.Dummy<String>()); Assert.IsNotNull(newProject); } ここまでは順調ですね。赤、緑、リファクタリングなど。今では実際に保存する必要があります。ここでいくつかの手順を省略して、これで終わります。 [TestMethod] public void CreateProject_BasicParameters_ProjectMatchesExpected() { var fakeDataStore = A.Fake<IDataStore>(); var testController = new Controller(fakeDataStore); String expectedTitle = fixture.Create<String>("Title"); Project newProject = testController(expectedTitle); Assert.AreEqual(expectedTitle, newProject.Title); } …

4
複数のクラスを含むC#ファイルの命名規則は何ですか?
この投稿を改善したいですか?引用や回答が正しい理由の説明など、この質問に対する詳細な回答を提供します。十分な詳細のない回答は、編集または削除できます。 この質問はして移行され、それがソフトウェア工学スタック所に答えることができるので、スタックオーバーフローから。 8年前に移行され ました。 C#プロジェクトでは、小規模で密接に関連するクラスを同じ.csファイルに頻繁にグループ化します。この方法により、実際のコードにほとんど含まれない無数のファイルを処理する際の摩擦が軽減されます。それでも、複数のクラスを含むファイルに名前を付ける確立されたプラクティスはありますか?
20 c#  .net 

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