class a { public static fa() { } class b { public fb() { //想在这里调用fa(),如何调用 } }
class b1=new b(); b1.b1(); }
还有问题,应该是 class a { public static void fa() { } class b { public void fb() { //想在这里调用fa(),如何调用 } }
class b1=new b(); b1.fb(); }
但是为什么要把class b放在class a里面呢?这样的做法不太好
class a { public static void fa() { } class b { public void fb() { a.fa(); //想在这里调用fa(),如何调用 } }
class b1=new b(); b1.fb(); }
class a { public static void fa() { } class b { public void fb() { a.fa(); //想在这里调用fa(),如何调用 } }
class b1=new b(); b1.fb(); } 但是这样实现看起来就不怎么规范
怎么不用继承呢? class a { public static void fa() { }} class b:a { public void fb() { //想在这里调用fa(),如何调用 //调用父类的方法 } }
class b1=new b(); b1.fb();
using System;namespace ConsoleApplication1 { /// <summary> /// Class1 的摘要说明。 /// </summary> class Class1 { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main(string[] args) { // // TODO: 在此处添加代码以启动应用程序 // class2 b = new class2(); System.Console.WriteLine(b.b()); Console.ReadLine(); } static string a(){ return "invoke function a"; } class class2{ public string b(){ return Class1.a(); } } } }
用static能够实现,可是有些时候不能用static。 例如多线程的话,不能用static,而要各自使用自己的(使用到了各自的数据)。 我想了一种方法 如下: class a { public void fa() { } class b { public a a1; public void fb() { //想在这里调用fa(),如何调用 } }
class b1=new b(); b1.a1=this; b1.fb(); } 即在b中引用a的实例,不知道这样好不好,还有其他方法吗?
{
public static fa()
{
}
class b
{
public fb()
{
//想在这里调用fa(),如何调用
}
}
class b1=new b();
b1.b1();
}
class a
{
public static void fa()
{
}
class b
{
public void fb()
{
//想在这里调用fa(),如何调用
}
}
class b1=new b();
b1.fb();
}
{
public static void fa()
{
}
class b
{
public void fb()
{
a.fa();
//想在这里调用fa(),如何调用
}
}
class b1=new b();
b1.fb();
}
{
public static void fa()
{
}
class b
{
public void fb()
{
a.fa();
//想在这里调用fa(),如何调用
}
}
class b1=new b();
b1.fb();
}
但是这样实现看起来就不怎么规范
class a
{
public static void fa()
{
}}
class b:a
{
public void fb()
{
//想在这里调用fa(),如何调用
//调用父类的方法
}
}
class b1=new b();
b1.fb();
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
class2 b = new class2();
System.Console.WriteLine(b.b());
Console.ReadLine();
}
static string a(){
return "invoke function a";
}
class class2{
public string b(){
return Class1.a();
}
}
}
}
例如多线程的话,不能用static,而要各自使用自己的(使用到了各自的数据)。
我想了一种方法
如下:
class a
{
public void fa()
{
}
class b
{
public a a1;
public void fb()
{
//想在这里调用fa(),如何调用
}
}
class b1=new b();
b1.a1=this;
b1.fb();
}
即在b中引用a的实例,不知道这样好不好,还有其他方法吗?
它和包含它的外部类是没有关系的,并没有提供方法直接访问外部类的实例方法(java中可以)
只能在构造内部类的时候把外部类的实例当作构造参数传入内部类(就象楼上的方法)
然后内部类可以访问外部类的一切成员,包括private的成员
没有别的方法了
{
public static void fa()
{
}
class b
{
public void fb()
{
a.fa();
}
}
class b1=new b();
b1.fb();
}