猿问

为什么会提示当前上下文不存在"Do"问题所在?

第一个
namespace Controls
{
public object Do(int a)
{
//......
}
}
第二个
using Controls;
namespace login
{
private void btnTest_Click(object sender, EventArgs e)
{
try
{
int BB = (int) Do(C);//此处提示当前上下文不存在"Do"
}
}
}

偶然的你
浏览 100回答 2
2回答

千万里不及你

你这么写肯定不对啊,首先你的第一个类名没有写出来,而且作为非静态类的非静态方法是不能直接调用的,需要实例化。也就是说,你在需要使用DO方法的时候,var myclass = new class1(); //这个class1 是你DO函数所在的类的类名。 myclass是实例名,可以自己改。实例化这个类之后,int BB = (int)myclass.Do(C) ;才能运行。

慕桂英546537

c#基类子类的函数调用关系,代码说明new关键字后面的类中的函数为对象调用的函数,当然必须要有virtual和override,继承就相当于包含了基类的函数,子类对象调用时基类的函数相当于就在子类当中一样。(必须要有virtual和override此代码才成立),问题是C#基础问题但很容易搞错,代码片在unity3d中测试,需要UnityEngine.dll。using UnityEngine;  using System.Collections;  public class NewBehaviourScript : MonoBehaviour  {  void Start()  {  TestBase T1 = new TestChild();  T1.TestA();//child!  TestBase T2 = new TestBase();  T2.TestA();//base!  TestChild T3 = new TestChild();  T1.TestA();//child!  }  }  using UnityEngine;  using System.Collections;  using UnityEngine;  public class TestBase  {  public TestBase()  {  }  public virtual void A()  {  Debug.LogError("base!");  }  public void TestA()  {  A();  }  }  public class TestChild : TestBase  {  public override void A()  {  Debug.LogError("child!");  }  }
随时随地看视频慕课网APP
我要回答