我做得很短,我有一个看起来像这样的课程:
namespace Blub {
public class ClassTest {
public void teest() {
return "test";
}
public class AnotherTest {
public void blub() {
return "test";
}
}
}
}
我可以像这样访问名为“teest”的函数,但是如何在不执行其他“new ClassTest.AnotherTest()”的情况下访问函数“blub”?
访问功能teest:
Blub.ClassTest = new Blub.ClassTest();
ClassTest.teest(); //test will be returned
我的尝试(以及我希望它如何,在AnotherTest上访问是这样的:
Blub.ClassTest = new Blub.ClassTest();
ClassTest.blub(); //test will be returned
哪个不行,我可以像这样访问AnotherTest,我不想要它:
Blub.ClassTest2 = new Blub.ClassTest.AnotherTest();
ClassTest.blub(); //test will be returned
有人知道这方面的解决方案吗?
答案 0 :(得分:2)
您在<{strong> AnotherTest
内宣布ClassTest
,这就是您必须使用namespace.class.2ndClass
进行浏览的原因。
但是,我想你不太了解OO概念,是吗?如果在类中声明一个方法,它只能用于那个类的对象,除非你将它声明为static
,这意味着它将是一个类方法而不是实例方法。
如果您希望ClassTest
有两种方法(teest
和blub
),只需在类的主体声明两者,例如:
public class ClassTest
{
public string teest()
{
return "test";
}
public string blub()
{
return "test";
}
}
另外,请注意,如果某个方法声明为void
,它将不会返回任何内容(实际上,我认为您的原始代码根本不会编译)。
我建议你在尝试自己解决问题之前先深入研究OO。
答案 1 :(得分:0)
如果您需要访问另一个类,则必须在第一个类中将其设为属性。
namespace Blub {
public class AnotherTest {
public void blub() {
return "test";
}
}
public class ClassTest {
public AnotherTest at = new AnotherTest();
public void teest() {
return "test";
}
}
}
然后像这样访问:
ClassTest x = new ClassTest();
x.at.blub();