class Program
{
static void Main(string[] args)
{
HeroClass Hero = new HeroClass("項羽", "男", 1234, 2348);
Hero.ShowHero();
MasterClass mas = new MasterClass(Hero);
HeroClass.get();//有 static 只能屬于類;不能通過實例名稱點出來;
Console.WriteLine(Hero.duanwei);//通過類名中的名字點出來;實例化的變量;
Hero.SetHero("張三豐", "男", 1, 2, 3, 4);
Hero.ShowHero();
int[] myArr = { 123, 456, 678, 987 };
Hero.SetHero("張三豐", "男", myArr);//利用關鍵字 params 可以傳入數組
Hero.ShowHero();
string name1 = "";
int zhanli = Hero.Getzhanli(ref name1);
Console.WriteLine("名字{0} 戰力{1}", name1, zhanli);
string names = "";
int zhanlis = Hero.Getzhanli(ref names);
Console.WriteLine(names);
int mofa;
Hero.GetMofa(out mofa);
Console.WriteLine(mofa);
int mofa;
Hero.GetMofa(out mofa);
Console.WriteLine(mofa);
//MasterClass mas = new MasterClass();
MasterClass.Getmas();//把實例化去掉,同樣執行靜態構造函數
StaticClass str = new StaticClass(); 靜態類不能實例化
StatcClass sta = new StatcClass();
StatcClass.Str();
Console.ReadKey();
}
}
class StaticClass
{
//靜態類 一定是通過關鍵字static 修飾;
private static string str = "";
//靜態類 的成員一定為靜態的 不能有一個實例成員
public static void GetStr()
{
Console.WriteLine(str);
}
}
class StaticsClass
{
private static string str;
public static void Str()
{
str = "123";
Console.WriteLine(str);
}
}
class MasterClass
{
public MasterClass(HeroClass hero)
{
hero.Zhanli = 666;
hero.Mofazhi = 888;
hero.ShowHero();
}
//static MasterClass() {//靜態構造函數不能傳參;而且有且只執行一次;默認隱式調用;
// Console.WriteLine("執行了靜態構造函數!");
//}
public static void Getmas() {
Console.WriteLine("普通方法!");
}
}
class HeroClass
{
//常量
public readonly int duanwei = 6;//段位-只讀的
private string name;
private string sex;
private int zhanli;
private int mofazhi;
public string Name
{
set { name = value; }
get { return name; }
}
public string Sex
{
set { sex = value; }
get { return sex; }
}
public int Zhanli
{
set { zhanli = value; }
get { return zhanli; }
}
public int Mofazhi
{
set { mofazhi = value; }
get { return mofazhi; }
}
public HeroClass(string _name, string _sex, int _zhanli, int _mofazhi)
{
this.name = _name;
this.sex = _sex;
this.zhanli = _zhanli;
this.mofazhi = _mofazhi;
duanwei = _zhanli;//只讀字段只能在構造函數更改;
}
public void ShowHero()
{
Console.WriteLine("英雄{0} 性別{1} 戰力{2}魔法值{3} ", name, sex, zhanli, mofazhi);
//duanwei = 333; 只讀字段不能在普通方法里更改;只能在構造函數更改
}
public static void get()
{//注意 static 字眼
Console.WriteLine("666");
}
//params 關鍵字 參數為數組形式;如果有多個則放到后面 經常用到在方法的參數不確定情況下
public void SetHero(string _name, string _sex, params int[] Arr)
{
this.name = _name;
this.sex = _sex;
this.zhanli = Arr[0];
this.mofazhi = Arr[1];
int[] arr = new int[Arr.Length];
for (int i = 0; i < Arr.Length; i++)
{
arr[i] = i + 1;
}
}
//--------ref關鍵字-----------
public int Getzhanli(ref string _name)
{
_name = "英雄名稱" + name;
return zhanli;
}
public void GetzhanliS(ref string _name)
{
_name = "英雄名稱" + name;
}
//------out關鍵字--------
//public void GetMofa(out int _mofazhi) {
// _mofazhi = mofazhi;
//}
public void GetMofa(out int _mofazhi)
{
_mofazhi = mofazhi;
}
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。