C#方法有关内容的总结--C#基础

2021-08-05 23:57

阅读:407

标签:lin   ring   radius   sans   reading   决定   改变   相同   math   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#基础标签:lin   ring   radius   sans   reading   决定   改变   相同   math   原文地址:http://www.cnblogs.com/qikeyishu/p/7499362.html


评论


亲,登录后才可以留言!