1樓:龍天騎士
你定義了基類的變數mybase 但也只是定義了而已 記憶體中並有開闢相應的記憶體空間 必須new 或者把他指向其他空間才能正常使用~所以你沒給他賦值或者沒new 是不能呼叫dosomething()方法的~~
不同的類一般情況下是不能相互賦值的~但是有幾個特例,比如 兩個是繼承關係 子類例項可以給父類變數賦值~或者兩個類的例項型別相同等情況~
最後一個問題 ~父類物件不能呼叫子類的屬性方法 子類的物件可以呼叫父類的屬性方法~如果你子類重寫了父類的方法 你得到的是子類的方法值 但是你呼叫的仍然是父類的方法~只不過c#自己發現了重寫後的值 取了一下而已。。。
補充一點 你子類沒有用override重寫方法 不可能得到derived imp
2樓:匿名使用者
myderivedclasee myderived = new myderivedclasee();
mybaseclass mybase;
mybase = myderived;
mybase.dosomething(); //呼叫mybaseclass的dosomething, 因為myderivedclasee中的dosomething用了new,而不是override,new表示定義了一個與基類完全沒關係的同名函式,override表示重寫了基類的同名函式,但具有相同意義。
myderived.dosomething(); //呼叫myderivedclasee的dosomething
mybase.test1(); //錯誤,因為基類不認識test1。
(mybase as myderivedclasee).test1(); //用as轉換後可呼叫myderivedclasee的test1
c#使用了未賦值的區域性變數,如何賦值?
3樓:匿名使用者
string name1 = 「」;
string name2 = 「」;
int age1 = 0;
int age2 = 0;
定義變數是直接初始化,養成好的習慣可以減少很多不必要的錯誤。
4樓:汝諾步天心
假設你的number=-1,你會發現你的if一條都沒執行,這時候cost等於多少呢?編譯器沒辦法確回定答cost的值,所以會給你標紅,你需要在定義它的時候初始化一下,如cost=0(如果是c#
7.0,你可以用cost=default),或保證你的if能覆蓋所有情況。
5樓:無秉朋佳
對於string型別的變數,最好的初始賦值是string
name1=null;
string
name2=null;
而判斷是否賦值最好是用
if(name1.length>1)
判斷,之後再輸出比較好
6樓:空湘章元瑤
console.writeline("第二個學員的姓名(0),年齡歲",
name2,
age2);
這句話好像沒有給值吧,樓主
c#中的變數賦值問題
7樓:周海濤
console.writeline(m);
這個輸出就不用說了吧,直接輸出8;
console.writeline(a);
這個呢, 首先a=8; 當執行p=a++的時候, a的值,已經+1了;現在a的值是9了;
console.writeline(p);
這個是先取a的值,輸出8;
8樓:
m = m++;
為什麼要這樣呢?
直接m++
不就行了嗎?
這個應該是一個不正確或者有歧義的語句。
9樓:
a++之後a本來的值8賦給了p,但是a自加了1所以是9
m是在自加之前就把本來的值又賦給了m
10樓:匿名使用者
a是先++後才賦值的,m直接賦值了。
c#給變數賦值出現問題
11樓:匿名使用者
說明從資料庫裡讀取到的x欄位,不是一個float值,所以出錯了,你可以**修改一下:
while(drxy.read())
12樓:匿名使用者
x[i]=float.tryparse(drxy[0].tostring());//這樣是實際應用中最有效的辦法 嘗試轉換
13樓:匿名使用者
具體是什麼資料型別 你要看建立這個表的時候 x和y是什麼型別的
c# double型別變數賦值問題
14樓:陽光的雷咩咩
double rateofmargin=+0;幹嘛要加個+號?
在其他if裡面加斷點,也永遠進去不了?
15樓:匿名使用者
double rateofmargin=+0;是什麼意思,在未初始化之前就使用變數估計只能得到錯誤結果,+號應該手誤,去掉+就行了。
16樓:匿名使用者
你的引數是怎麼傳入方法的啊!能不能寫全一點。
c#物件給物件賦值時的問題
17樓:匿名使用者
結構體和類的區別就在這裡,結構體的是值型別,而類是引用型別,所以結構體在用=賦值的時候,不是指標發生變化,而是值的變化,而引用型別的就只是記憶體的指標發生了變化,每一個變數其實都是引用,而不是有具體的值,他們只是指向記憶體中的某個未知。所以,第二題那裡,c2=c1,也就是會所c2指向跟c1一樣,這樣的花,c2發生變化,c1也會跟著變。
18樓:
值型別tt2 = tt1;
tt2是tt1的複製品,和他沒關係。
引用型別ce2 = ce1;
ce2和ce1是一個物件,一個改變另一個也相應改變。
c#中string型別的變數被賦值後其值就不能改變,為什麼在這裡就改變了呢?
19樓:匿名使用者
字串索引從0開始,childstring.substring(2)是從第三個位置開始擷取到最後,有包括第三個位置的。
20樓:匿名使用者
。。。。誰說string賦值後不能改變的?除非你把字串定義為常量,加const
21樓:匿名使用者
childstring.substring(2);從下標為2的位置擷取到最後
22樓:放逐
這也沒有改變啊,原先的物件"ming,jie,zhang,wang,yi"還是這個物件,你調substring這個方法之後,它是另建立了一個物件"ng,jie,zhang,wang,yi",它不會更改之前的那個物件的,懂否
c#中給datetime型別的變數賦值,只賦值時和分怎麼做,而且這時和分還是從其他地方讀過來的。
23樓:悲傷中的悲劇
int space = 0;
datetime date = convert.todatetime("2013-4-26 11:08");
char chardate = date.tostring().tochararray();
for (int i = 0; i < chardate.length-1; i++)
}// 獲取到空格位置 把後面的欄位替換就行
24樓:匿名使用者
不是這麼做 直接讀取資料庫中的datetime 或者讀取 textbox中的datetime 然後轉換成string 型別
在用函式進行擷取後面的小時分鐘就可以了
25樓:ps隨風飄
不能直接給datetime型別直接賦值,應該進行給型別轉換。
例如datetime.parse等。
26樓:匿名使用者
datetime.tostring("mm-dd")
C語言判斷正誤。。賦值的問題,C語言 判斷直接賦值問題
char s 定義一個字元類指標 s olympic s指向的是字串 olympic 裡的第一個字元 o s可理解為字串 第二句若改成指向字元類指標的指標就可以正確賦值了,如下 char s s 這樣的s可理解為指向字串的指標,也可以理解為二維陣列 可以這麼理解第二句 char s 定義一個字元型指...
C資料庫查詢後的值該怎麼賦值給變數
會用ado.net執行這句sql,然後返回資料結果吧?然後因為你的這句sql只有一行一列的值,所以直接返回0行0列,或0行 count 列就好,如下 int count convert.toint32 dataset.tables 0 rows 0 0 tostring 或 int count co...
c語言變數定義的位置問題
以花括號 給包圍起來的 段稱為block 我不知道它的準確中文翻譯是不是叫模組 只要在block開始的地方定義變數就不會錯,且該變數的作用域和生存期 除了static限定 只在該block裡,且該變數可以遮蔽block外的變數。譬如在block外已經有一個變數名為a 1的int變數,在block裡允...