亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么會提示當前上下文不存在"Do"問題所在?

為什么會提示當前上下文不存在"Do"問題所在?

C#
偶然的你 2022-12-21 19:15:48
第一個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"}}}
查看完整描述

2 回答

?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

你這么寫肯定不對啊,
首先你的第一個類名沒有寫出來,
而且作為非靜態類的非靜態方法是不能直接調用的,需要實例化。
也就是說,你在需要使用DO方法的時候,

var myclass = new class1(); //這個class1 是你DO函數所在的類的類名。 myclass是實例名,可以自己改。
實例化這個類之后,
int BB = (int)myclass.Do(C) ;
才能運行。

查看完整回答
反對 回復 2022-12-25
?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

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!");  
}  
}


查看完整回答
反對 回復 2022-12-25
  • 2 回答
  • 0 關注
  • 136 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號