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

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

2
一般的なスケジューラデータをC#に保存するための理想的なデータ構造/手法
HTMLでテーブルを出力する汎用スケジューラオブジェクトをC#4で実装しようとしています。基本的な目的は、いくつかのオブジェクトをさまざまな属性と一緒に表示し、特定の期間に何かを実行していたかどうかを示すことです。 スケジューラーはヘッダーを表示するテーブルを出力します: Detail Field 1 ....N| Date1.........N 日付範囲を作成するために、開始日と終了日でテーブルを初期化したいと思います(理想的には、時間などの他の期間も実行できますが、それは重要ではありません)。次に、関連するイベントを持つ汎用オブジェクトを提供します。 テーブルセルにマークを付けたい期間内にオブジェクトにイベントがある場合 例えば Name Height Weight 1/1/2011 2/1/2011 3/1/20011...... 31/1/2011 Ben 5.11 75 X X X Bill 5.7 83 X X だから私は開始日= 1/1/2011と終了日31/1/2011でスケジューラを作成しました 人物オブジェクト(既にソートされている)を指定して、表示するフィールド(名前、高さ、体重)を伝えたい 各人には、開始日と終了日があるイベントがあります。一部のイベントは開始して終了しますが、関連する日付などに表示されるはずです。 理想的には、クラス予約オブジェクトなども提供できるようにしたいと考えています。だから私はそれを一般的に保つようにしています。 私は同様のJavasript実装などを見てきました。 これに適したデータ構造は何でしょうか?それを一般的にするために使用できるテクニックについての考え。私はジェネリックスに不慣れなので、どんなヒントも歓迎されます。

3
順序付けされた列挙:IEnumerableまたは配列(C#で)?
典型的なコンテキスト:要素が順序付けされていると見なすコレクションの拡張メソッドを作成します。関数はインデックス0から始まり、順序が重要です。例:アイテムのシーケンスまたはインデックスによるグループ化。 しかし、私は常に拡張すべきことの困惑:IEnumerable<T>またはT[]。私の理論的根拠は明確な目的でした:配列には順序付けの概念がありますが、IEnumerableは多くの一般的なコレクションによって実装されますが、すべてに順序付けの概念があるわけではありません。 辞書-順不同 HashSet-順不同 LinkedList-順序付け リスト-注文済み キュー-注文済み SortedDictionary-ソート済み(元の順序ではない) SortedList-ソートされた(元の順序ではない) SortedSet-ソート済み(元の順序ではない) スタック-反転 同様に、注文される場合と注文されない場合がある他の実装。 また、列挙が完了していない場合に列挙子がリセットされるかどうかは定かではありません。それが心配な場合は、列挙がどの時点で開始されるのか誰が知っているのでしょうか。配列の列挙は常に最初から始まります。 したがって、私にとっては、を拡張する方が理にかなっていT[]ます。しかし、私はそれを正しいと思いますか?心配しすぎですか?「順序付けされた」列挙を保証するための適切なアプローチは何ですか?
8 c#  array  order 

1
デスクトップアプリケーションおよびWebプロジェクトで使用される可能性のある共有ライブラリの作成
私は過去1年ほどの間、私たちの会社で多数のMVC.NETおよびc#デスクトッププロジェクトに携わってきましたが、他のプロジェクトにも(もちろん、読み取り専用の学習能力で)鼻を突っ込んでいました。 このことから、さまざまなプロジェクトやチームにわたって、優れたインターフェースや抽象化に対してうまく設計された機能がたくさんあることに気づきました。私たちは時々私たち自身の仕事を好む傾向があるので、私はいくつかのプロジェクトがまったく同じクラスを持っていることに気づきました。もともとそれを書いた) この事実については、時折プログラマーミーティングの1つで言及し、この機能の一部を企業のコアライブラリに組み込んで、長期にわたって構築して複数のプロジェクトで使用できるようにすることを提案しました。誰もが同意し、私はこの可能性を検討し始めました。 しかし、私はかなり早い段階で障害に遭遇しました。現在、私たちのチームは主にMVCに焦点を当てており、主に2.0にプロジェクトがありますが、3.0に分岐し始めています。また、いくつかの共有クラスや基本的なヘルパーメソッドの恩恵を受ける可能性のあるデスクトップアプリケーションもいくつかあります。 最初にこのDLLを作成するときに、すべてのプロジェクトタイプ(Web、クライアントなど)で使用できるいくつかの共有クラスを含めましたが、MVCアプリケーションでのみ役立ついくつかの共有モジュールの追加を検討し始めました。しかし、これは私が作成していたクラスのいくつかを活用するために、いくつかのMicrosoft Web DLLへの参照を含める必要があったことを意味しました(この段階ではMVC 2.0)。 今私の問題は、クライアントアプリケーションでも使用できるWeb固有のライブラリへの参照を持つ共有DLLがあることです。それだけでなく、DLLは最初にMVC 2.0を参照し、最終的にすべてのプロジェクトでMVC 3.0に移行します。しかし、このライブラリのクラスの多くはまだMVC 3などに関連していると思います このDLL内のコードは、次のような独自の名前空間に分離されています。 CompanyDLL.Primitives CompanyDLL.Web.Mvc CompanyDLL.Helpersなど だから、私の質問は: このような共有ライブラリを作成してもよろしいですか、またはWeb固有の機能が含まれている場合、特定のフレームワークまたはMVCバージョンのみを対象とする別のWeb DLLを作成する必要がありますか? 問題がなければ、たとえばMVC 3プロジェクトでMVC 2を参照するライブラリを使用するときにどのような問題が発生する可能性がありますか。ある種の互換性の問題、またはライブラリを使用している開発者がMVC 2.0ライブラリが必要であることに気付かない問題に遭遇するかもしれないと私は考えています。彼らはいくつかのジェネリッククラスなどを使いたいかもしれません コンセプトは当時は良いアイデアのように思われましたが、おそらく実際的な解決策ではないのではないかと考え始めています。しかし、テスト済みのコードであることが証明されているため、プロジェクト間でクラスやメソッドがコピーされるのを目にした回数は、完全に正直であることに少し不安を感じます! 更新:私が採用したBernardsの回答に加えて、良いアドバイスのようです。ただし、MVC 2とMVC 3の両方のプロジェクトでおそらく役立ついくつかの共有クラスを作成したいと思います。ただし、最初に共有クラスを作成するには、共有アセンブリがMVCフレームワークの1つを参照する必要があります。 上記の第2四半期をさらに詳しく説明します。 MVC 3 Webソリューションが必要な場合、MVC 3を具体的に参照するCompanyDLL.Web.Mvc3プロジェクトを共有する必要がありますか?これは、CompanyDLL.Web.Mvc2ソリューションからこの新しいMvc3共有プロジェクトにすべてのコードをコピーすることを意味しますか? 共有アセンブリの作成、および異なるフレームワークバージョンに対するビルドと参照の基本的な設計スキルが不足しているようです。または、それを吸い込んでCompanyDLL.Web.Mvc2、CompanyDLL.Web.Mvc3、CompanyDLL.Web.Mvc4などのライブラリを作成するだけの簡単な場合もあります...
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.