Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何泛化类和访问属性?_C#_Oop - Fatal编程技术网

C# 如何泛化类和访问属性?

C# 如何泛化类和访问属性?,c#,oop,C#,Oop,我想泛化一个类a并创建一个具有类a和类B属性的类a的对象。这是我已经完成的代码,但我无法访问B中的属性,只能访问a类型属性。怎么做 请告诉我这个概念叫什么A测试=新B 这个概念叫做继承 A test = new B(); B bReference = test as B; System.Console.WriteLine(bReference.bint); 使用new B创建类B的实例,并将对它的引用保存在变量测试中。变量测试是一个变量,可以保存对类a实例的引用。B是a的子类,因此可以将新实例

我想泛化一个类a并创建一个具有类a和类B属性的类a的对象。这是我已经完成的代码,但我无法访问B中的属性,只能访问a类型属性。怎么做

请告诉我这个概念叫什么A测试=新B


这个概念叫做继承

A test = new B();
B bReference = test as B;
System.Console.WriteLine(bReference.bint);
使用new B创建类B的实例,并将对它的引用保存在变量测试中。变量测试是一个变量,可以保存对类a实例的引用。B是a的子类,因此可以将新实例视为a的实例,因此可以将其存储在变量测试中。
如果要访问实例的成员(特定于B),则必须将引用视为对B实例的引用。您可以使用as运算符进行访问。

为什么a测试=新B;?而不是B测试=新的B;?你说的班级考试是什么意思:一点点?如果A、B和test是类,那么A测试=新B;没有意义…如果您发布代码,请确保它已编译,或者至少清楚它未编译的原因;类,但肯定Clas不是c。感谢大家的回复,smartdev我需要在a和jeroen中获得b的引用,我不知道如何在代码部分创建它,所以将其粘贴到html标记中Hanks这是可行的!但是我需要避免引用。有没有其他方法可以让测试自身获得b对象的引用,而不使用as byou将其转换为b实例的引用。但是如果您想让它保持内联,可以执行以下操作:Btest.bint或test as B.bint
A test = new B();
B bReference = test as B;
System.Console.WriteLine(bReference.bint);