私はヘルパーメソッドを含む基本クラスを持っており、いくつかの仮想メソッドを含むいくつかの派生クラスを持っています。基本クラスの派生クラスオブジェクトを使用
だから、私はどのように基本クラスの仮想メソッドで派生クラスオブジェクトを使用することができます知りたいですか?オブジェクトのproperties
をチェックしているFromStream
方法として
派生クラス
class myclass :baseClass
{
public string id { get; set; }
public string name { get; set; }
}
基底クラス
public abstract class baseClass
{
public virtual object FromStream()
{
string name, type;
List<PropertyInfo> props = new List<PropertyInfo>(typeof(object).GetProperties()); // here I need to use derived class object
foreach (PropertyInfo prop in props)
{
type = prop.PropertyType.ToString();
name = prop.Name;
Console.WriteLine(name + " as "+ type);
}
return null;
}
メイン
static void Main(string[] args)
{
var myclass = new myclass();
myclass.FromStream(); // the object that I want to use it
Console.ReadKey();
}
」派生クラスオブジェクトを使用する " - あなたはどういう意味ですか? GetType()。GetProperties()を呼びたいかもしれないと思います。 Btw、サンプルコードでも.NETの命名規則に従い、*完全な*サンプルコードを提供すると便利です。 (あなたの 'Main'メソッドは宣言されていないクラスにあり、' x'も宣言されていません...) –
あなたの最終目標は_really_不明です。あなたは何らかの種類の(シ)シリアライザを構築しようとしているようです。既存のAPIの使用を検討しましたか?また、 'typeof(TypeHere)'の代わりに 'someInstance.GetType()'やジェネリックを使うこともできます。 – CodeCaster
基本クラスを汎用クラスにしたいので、すべての派生クラスでfromStreamメソッドを使用できます。したがって、基本クラスオブジェクトを使用してmainからfromStreamを呼び出すと、そのオブジェクトをfromStreamメソッドで使用します。 –