C#方法有關內容的總結--C#基礎
阿新 • • 發佈:2017-09-10
programe height tasks adk 實例方法 text 三角形面積 string math.sqrt using System;
namespace 靜態方法與實例方法
using System;
namespace 虛方法等知識
using System;
namespace 重寫方法
using System;
namespace 外部方法
using System;
namespace 分布方法
using System;
namespace 方法重載
main方法有四種表現形式
using System;
namespace Main方法
1、靜態方法與實例方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 靜態方法與實例方法
{
class Program
{
int exampleVar = 0;//靜態成員
static int staticVar = 0;//靜態成員
static void staticMethod(){
staticVar = 1;
//exampleVar = 1;不能調用實例成員
} //只能訪問靜態成員
void exampleMethod() {
//實例成員方法可以調用靜態和實例任何成員
staticVar = 1;
exampleVar = 1;
//this.staticVar = 2;
//在實例方法中可以使用this
}
static void Main(string[] args)
{
staticMethod();//直接調用靜態方法;同Program.staticMethod();
//調用實例方法時,將類進行實例化
staticVar = 2;//直接調用靜態成員,也等價於 Program.staticVar = 2;
Program p = new Program();
p.exampleMethod();
p.exampleVar = 1;
//Program.exampleMethod();不能通過訪問靜態方法的途徑訪問實例方法,要通過對象去訪問
}
}
}
2、虛方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 虛方法等知識
{
class class1{
//指定方法public;默認方法是私有的,只能在當前類中進行訪問
//需要在其他類中進行訪問,就要指定public;訪問權限是最高的在項目內部都可以訪問
public virtual void virtualMethid()//虛方法可以在派生類中重寫
{
Console.WriteLine("這是一個虛方法!");
}
public void nonVirtualMethod() {
Console.WriteLine("這是一個非虛方法");
}
}
class class2:class1 { //class2繼承class1
public new void nonVirtualMethod() {
Console.WriteLine("這是一個新方法!");
}
public override void virtualMethid()//重寫虛方法
{
//base.virtualMethid();
Console.WriteLine("這是新寫的虛方法!");
}
}
class Program
{
static void Main(string[] args)
{
class1 c1 = new class1();
c1.virtualMethid();
c1.nonVirtualMethod();
class2 c2 = new class2();
c2.virtualMethid();
c2.nonVirtualMethod();
c1 = c2;
c1.virtualMethid();
c1.nonVirtualMethod();
//調用了c2的虛方法
//虛方法的實現不是一成不變的,而非虛方法是一成不變的
Console.ReadKey();
}
}
}
3、重寫方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 重寫方法
{
//方法名稱和參數列表不能改變
class class1
{
public virtual void Write() {
Console.WriteLine("這是一個虛方法,可以被重寫!");
}
}
class class2:class1
{
public override sealed void Write()//重寫方法,不能更改權限修飾符
{
Console.WriteLine("這是一個重寫方法,被稱為一重寫的方法!");
}
}
class class3:class2
{
}
//如果不想讓繼承class2的類再去重寫Write()方法
//那就采用關鍵字sealed
class Program
{
static void Main(string[] args)
{
class1 c1 = new class1();
c1.Write();
class2 c2 = new class2();
c2.Write();
//override和virtual配合
Console.ReadKey();
}
}
}
4、外部方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
namespace 外部方法
{
//方法位置:通常放在類當中,並且與其他方法保持平級關系
class Program
{//使用之前應該引用命名空間:
[DllImport("User32.dll")]//調用庫文件(alt+shift+f10)
//聲明外部方法 使用關鍵字extern由於配合DllImpor,需要static
public static extern int MessageBox(int h, string m, string c, int type);
static int Main(string[] args)
{
Console.WriteLine("請輸入您的名字:");
String name = Console.ReadLine();
//利用return進行彈出對話框, 所以需要精main方法改為in他類型
return MessageBox(0, "您好:" + name + "\n" + "歡迎來到奇客藝術博客","歡迎提示", 0);
}
}
}
5、分部方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 分布方法
{
public partial class Programe
{
//聲明與定義一個分部類
//生命分部方法
//方法默認為私有,也可以加上
partial void Write();//聲明
partial void Write() {
Console.WriteLine("這是一個分部方法");
}
}
public partial class Programe
{
static void Main(string[] args)
{
Programe p = new Programe();
p.Write();
Console.ReadKey();
}
}
}
6、方法重載
決定方法是否構成重載有三個條件
1)在同一個類中
2)方法名相同
3)參數列表不同
利用重載分別求圓、矩形、三角形的面積
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 方法重載
{
class Program
{
static void WriteArea(double radius) {
double Area = System.Math.PI*radius*radius;
Console.WriteLine("您所求圓的面積是:{0}",Area);
}
static void WriteArea(double width,double height) {
double Area = width * height;
Console.WriteLine("矩形面積為:{0}", Area);
}
//三角形面積
static void WriteArea(double a,double b,double c) {
double p = (a + b + c) / 2;
double Area = System.Math.Sqrt(p * (p - a) * (p - b) * (p - c));
Console.WriteLine("三角形的面積是{0}",Area);
}
static void Main(string[] args)
{
WriteArea(3);
WriteArea(20,23);
WriteArea(3,4,5);
Console.ReadKey();
}
}
}
7、Main方法
main方法有四種表現形式
public static void Main()
public static int Main()
public static void Main(string[] args)
public static int Main(string[] args)
指定命令行參數
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Main方法
{
class Program
{
static void Main(string[] args)
{
//查看命令行參數數組長度
//指定命令行參數
Console.WriteLine("有{0}個命令行參數", args.Length);
foreach(string str in args)
Console.WriteLine(str);
Console.ReadKey();
//項目->右擊->屬性->調試
}
}
}
C#方法有關內容的總結--C#基礎