C# 如何切换类嵌套?
我终于明白了类派生是如何工作的。。。它的工作原理和我最初的想法完全相反C# 如何切换类嵌套?,c#,class,unity3d,subclass,nested,C#,Class,Unity3d,Subclass,Nested,我终于明白了类派生是如何工作的。。。它的工作原理和我最初的想法完全相反 using UnityEngine; using System.Collections; public class TestScript : MonoBehaviour { Class5 A = new Class5(); Class1 B = new Class1(); void Start(){ A.Function5(); // 5 A.Function1();
using UnityEngine;
using System.Collections;
public class TestScript : MonoBehaviour {
Class5 A = new Class5();
Class1 B = new Class1();
void Start(){
A.Function5(); // 5
A.Function1(); // 1
B.Function5(); // ERROR `Class1' does not contain a definition for `Function5' and no extension method `Function5' of type `Class1' could be found (are you missing a using directive or an assembly reference?)
B.Function1(); // 1
}
}
public class Class1{
public void Function1(){
Debug.Log("1");
}
}
public class Class2 : Class1{
public void Function2(){
Debug.Log("2");
}
}
public class Class3 : Class2{
public void Function3(){
Debug.Log("3");
}
}
public class Class4 : Class3{
public void Function4(){
Debug.Log("4");
}
}
public class Class5 : Class4{
public void Function5(){
Debug.Log("5");
}
}
Q1在这个特定代码中,我将如何做:
- 无法访问类1、2、3、4
- 但只能访问Class5,并通过它访问其他类中的所有其他函数
public class Class5 : Class4, Class3, Class2, Class1{
public void Function5(){
Debug.Log("5");
}
}
因此,类4不能读取类3但是只有类5可以读取所有其他类?您可能在所有
Function1..Function4
方法上查找protected
,而不是public
,因此只有Class5
可以使用函数1-4
请注意,在C#类中,类只能有一个基类,如
Class5:Class4{}
(Class5
仍将看到其所有基类中受保护的函数1-4)。更喜欢组合而不是继承。这使得依赖关系图更容易理解。这就是说,如果您需要在.Net中进行多重继承,请使用接口而不是类型继承。哇,接口是什么?gr8现在我唯一缺少的是如何对公共隐藏类1、2、3、4?尽管我喜欢调用类1,但我无法访问Func1