1.base的用法:用於派生類訪問基類成員-->
(1)呼叫基類上已經被過載的方法(在派生類中過載了該方法)。
(2)指定建立派生類例項時應呼叫基類的構造方法。
注意:base只能在構造方法、一般方法、例項屬性訪問器中使用。(不能再靜態方法中使用關鍵字base)
例如:
(1)呼叫基類上已經被過載的方法
using system;
public class person
", name);
console.writeline("ssn: ", ssn);
}
}
class employee : person
", id);
}
}
class testclass
}輸出為:---->
name: john l. malgraine例如:ssn: 444-55-6666
employee id: abc567efg
(2)指定建立派生類例項時應呼叫基類的構造方法。(包括和this的比較)
public2.this用法:引用類的當前例項class
basecircle
public
basecircle(
double
arg)
}
public
class
subcircle : basecircle
public
subcircle(
double
a):base
(a)public
subcircle(
intk):
this
(1,2)
public
subcircle(
inti,
intj)
}
static
void
main(
string
args)
{
subcircle s1 =
newsubcircle();
subcircle s2 =
newsubcircle(1.1);
subcircle s3 =
newsubcircle(1);
}
輸出結果為:---->
no arguments
base
constructor!!!
sub
class
no argument constructor,actually call
base
constructor !!!
double
arg
base
constructor!!!
sub
class
with argument, actually call
base
double
constructor!!!
no arguments
base
constructor!!!
sub
class
with
inti&j argument!!!!
sub
class
with argument
intk, actually call sub
class
constructor
inti & j !!!
注意:
this
只是呼叫本身,但是這樣是需要呼叫一次基類沒有參的建構函式,所以會多顯示一條「基類的無引數建構函式. value:0」。
base
是呼叫基類的有引數建構函式。
其用於引用類的當前例項,也包括繼承而來的方法,通常可以隱藏this,msdn中的小結功能主要包括:
注意:由於靜態成員函式存在類一級,並不是物件的一部分,因此沒有this指標。在靜態方法中引用this是錯誤的。
hex和base32和base64的區別與聯絡
看個例子 package main import fmt import encoding hex import encoding base32 import encoding base64 func main 有些小夥伴可能有疑問,為啥要把 hello world 這麼明白的東西變成一串看不懂的東西...
base64和urlencode的區別和使用場景
1,無論是文字傳輸還是二進位制傳輸,其實均是將被傳輸物件轉化為二進位制位元組進行傳輸的 2,base64編碼是有一定用處的,比如email中,再比如 url中。url中,a b是會作為引數名 a 和引數值 b 傳送的,如果你傳送的引數b中有 那就會被瀏覽器認為是另乙個引數名了,而這不是你的本意。所以...
C 建構函式裡的base和this的區別
class baseclass numa public baseclass int i numa class childclassa baseclass numb public childclassa int i numb public childclassa int i,int j base i ...