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#基础的更多相关文章

  1. XCode中的单元测试:编写测试类和方法(内容意译自苹果官方文档)

    当你在工程中通过测试导航栏添加了一个测试target之后, xcode会在测试导航栏中显示该target所属的测试类和方法. 这一章演示了怎么创建测试类,以及如何编写测试方法. 测试targets, ...

  2. JS之BOM和DOM(来源、方法、内容、应用)

    1.Javascript组成(此文为转载) JavaScript的实现包括以下3个部分: 1)核心(ECMAScript):描述了JS的语法和基本对象. 2)文档对象模型 (DOM):处理网页内容的方 ...

  3. Java学习-026-类名或方法名应用之二 -- 统计分析基础

    前文讲述了类名或方法的应用之一调试源码,具体请参阅:Java学习-025-类名或方法名应用之一 -- 调试源码 此文主要讲述类名或方法应用之二统计分析,通过在各个方法中插桩(调用桩方法),获取方法的调 ...

  4. 魔法方法:构造和析构 - 零基础入门学习Python041

    魔法方法:构造和析构 让编程改变世界 Change the world by program 构造和析构 什么是魔法方法呢?我们来系统总结下: - 魔法方法总是被双下划线包围,例如__init__ - ...

  5. WordPress 无法使用the_content()方法输出内容

    在使用WordPress里在一个页面里我使用the_content()方法来输出当前页面的内容,但却显示为空,而标题,url等都没有问题 在网络上好像遇到这种情况的人很少只找到了一个说是可能是func ...

  6. python 列表排序方法reverse、sort、sorted基础篇

    python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...

  7. dom&bom的起源,方法,内容,应用

    Document Object Model的历史可以追溯至1990年代后期微软与Netscape的"浏览器大战"(browser wars),双方为了在JavaScript与JSc ...

  8. git内容补充-Git零基础快速入门-苏玲

    https://git-scm.com/book/zh/v2 git历史 集中式版本控制管理:cvs.svn 分布式版本控制管理:git 基本命令 git config --list --global ...

  9. JAVA中String类的方法(函数)总结--JAVA基础

    1.concat()方法,当参数为两字符串时,可实现字符串的连接: package cn.nxl123.www; public class Test { public static void main ...

随机推荐

  1. python 3.x 爬虫基础---Urllib详解

    python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 前言 爬虫也了解了一段时间了希望在半个月的时间内 ...

  2. 训练 smallcorgi/Faster-RCNN_TF 模型(附ImageNet model百度云下载地址)

    1. 下载训练.验证.测试数据和 VOCdevkit,下载地址: http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2 ...

  3. Halcon一日一练:CAD类型的相关操作

    大很多场合,需要在视觉程序中导入CAD文档,比如,在3C行业,需要对手机外壳进行CNC加工,或者点胶操作,此时,需要获取产品的各个点的数据.如果将CAD直接导入,就会大的减少编程工作量,同时也能达到很 ...

  4. 恢复linux系统文件夹颜色

    /etc/DIR_COLORS 默认值 # Background color codes:# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta ...

  5. 介绍一个轻量级iOS安全框架:SSKeyChain

    SSKeyChains对苹果安全框架API进行了简单封装,支持对存储在钥匙串中密码.账户进行访问,包括读取.删除和设置.SSKeyChain的作者是大名鼎鼎的SSToolkit的作者samsoffes ...

  6. Redis 实践2-数据结构

    alias redis-cli='/usr/local/redis/bin/redis-cli'   vi .bashrc 编辑加入  alias redis-cli='/usr/local/redi ...

  7. 【JavaWeb】DbUtils入门之QueryRunner

    DbUtils简介 根据官网的介绍,DbUtils是一种 JDBC Utility Component (翻译过来大概就是:JDBC实用部件),故名思意,和数据库操作有关 官网上的简介也称之为 JDB ...

  8. JS在线生成二维码

    Js代码 百度云公开下载地址:http://pan.baidu.com/s/1nvjTXB7 Html+Php代码 <volist name="huodong_list" i ...

  9. iOS实现从服务器请求json数据并转化成NSDictionary

    NSURL *url = [NSURL URLWithString:URL]; NSURLRequest *request = [NSURLRequest requestWithURL:url cac ...

  10. 3.1 if 条件分支语句

    Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 获取条件语句的执行结果的过程就是真假值判断 #首先需要说明在Python中 #假值(False):0. ...