• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ベースのクラスの型を定義して、 それをもとに派生?)

C#でクラスを作成する場合、コンパクトにする方法はある?

このQ&Aのポイント
  • C#でクラスを作成する際、同じような作業を繰り返す必要がありますが、コンパクトにする方法はありますか?
  • ベースのクラスの型を定義し、それをもとに派生したクラスがメソッドやプロパティを利用できるような方法はありますか?
  • C#でクラスを作成する際に、コンパクトで効率的な方法を探しています。同じ作業を繰り返さなくてもいい方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • sygh
  • ベストアンサー率76% (42/55)
回答No.4

C# 3.0以降の機能が使えるVisual Studio 2008あるいは2010をお持ちの場合、LINQ to SQLやO/Rマッピング(Object / Relational Mapping)といった機能の利用をお勧めします。SQL文の発行が言語仕様レベルでサポートされており、またVisual StudioがDB仕様からクラスを自動生成してくれますので、強力なIntelliSenseの恩恵を受けることができます。 下記サイトの前編でLINQの説明、後編でO/Rデザイナの簡単な使い方が紹介されてます。 http://www.atmarkit.co.jp/fdotnet/special/cslinq01/cslinq01_01.html ちなみにC# 3.0以降は自動プロパティという構文もサポートされており、単純な get/set であれば、フィールドの記述を省略して、より簡潔に書けるようになっています。

その他の回答 (3)

  • shiren2
  • ベストアンサー率47% (139/295)
回答No.3

ファクトリメソッドパターンですかね。 普通に引数で渡しても良さそうなものですが…。 C#は最近触れてないので忘れてしまいましたけども、確かハッシュ形式でアクセス出来る方法があったはずです。 プロパティを使わずにそちらを使われては如何かと。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

1:1対応で全部クラスを作ればそりゃ面倒でしょう。 違うのがパラメータの「値」だけならそもそもクラスを使い分ける必要性が全く感じられません。 挙動が違ったりパラメータ型が違うという場合は、ジェネリクスを調べると幸せかもしれません。 なお、(1)と(2)はC#3.0からだったか、 public int intCODE { get; set; } と書いておけばこれに相当するコードが展開されます。

noname#128134
noname#128134
回答No.1

何がやりたいのかイマイチわからないのですが、データベースをC#で扱うならDataSet でしょうか? データセットデザイナーとサーバーエクスプローラというのはご利用された事ありますか?どちらもVisualStudio に入ってます(要エディション確認) これを使うとまぁビジュアルに全部やれると思うんですけどねぇ。私はC#でデータベースを扱うプログラムで、上記のようなコードを一度も書いた事がないし(つまりデータセットデザイナを使う為)、テーブルのカラムの型に気を遣う必要も無いので・・・。 もしご存じないようなら、一度その手の本を読んで手順通りやってみてください。すごーーく便利ですから。 #勘違いした回答ならごめん

関連するQ&A