c#方法的重载:分为实例方法重载和静态方法重载俩种

1.实例方法重载的调用特点

  首先写三个Add方法和三个Sub方法

public int Add(int a,int b)
{
return a + b;
}
public double Add(double a,double b)
{
return a + b;
}
public double Add(int a,double b)
{
return a + b;
} public int Sub(int a, int b)
{
return a - b;
}
public double Sub(double a, double b)
{
return a - b;
}
public double Sub(int a, double b)
{
return a - b;

}

 

特点:编译器将自动更具方法的参数个数和类型自动匹配类的对应方法。

 

2.实例方法重载的好处

  1.减少类的对外接口(只显示一个方法),降低类的复杂度。

  2.便于用户使用(相同功能的方法名称都一样)和识别

3.实例方法重载的条件

  1.方法名称必须一样

  2.方法的参数不一样或类型不一样

4.实例方法的无关性

  方法的重载与返回值无关

静态方法的重载

1.使用关键字static

2.静态方法的调用格式:类名.方法名

3.使用案例

  

public static int Add(int a,int b,int c){
return a+b+c;
}
static void main(string [] args){
int res=类名.Add(,,);
Console.WriteLine(res);
}

4.静态成员使用经验

  1.   静态成员在程序运行时,被调用到内存中,并在系统未关闭之前不会被GC回收、
  2.   类的成员使用非常频繁的时候,可以考虑使用static修饰,但是不要使用过多
  3.   静态方法不能直接调用实例成员(静态方法不能直接调用实例方法,如果调用必须采用创建对象的方式)
  4.   静态方法也能够重载

构造方法相关知识:

问题:如果在初始化对象的时候自定义初始化内容怎么办?

解决:使用有参数的构造方法

有参数构造方法使用总结:

  1.   参数类型和顺序同样需要和定义规范的一致
  2.   有参数的构造方法可以让用户轻松选择使用何种方式完成对象的初始化工作
  3.   使用有参数构造方法能有效避免用户单个初始化对象属性的麻烦
  4.   如果想要约束用户创建时必须完成某些属性的初始化工作,则可以去掉无参构造方法

构造方法也可以有多个:

this关键字:

1.当成员变量和局部变量重名时使用this区分(不带this一遍的参数为局部变量)

2.this表示当前类的对象,用于访问该类成员变量或方法

构造方法与实例方法的区别:

构造方法:

  1.   用于对象的初始化,一个类至少有一个构造方法
  2.   不能显示调用,只能在创建对象的时候调用,使用呢我关键字
  3.   构造方法不能有返回值
  4.   构造方法的名称必须和类名一样

实例方法:

  1.   用于表示对象能干什么,一个类可以没有任何的实例方法
  2.   只能显示调用:类名.方法名
  3.   可以有返回值,没有时必须一void表示
  4.   方法的命名要有意义,一般是“动词+名词”形式,不能与类名相同,命名规范采用Pascal命名法

下一篇:对象初始化器,对象的销毁,基本数据类型和引用数据类型总结,ref和out关键字,快速理解分装.......

  未完待续,不足之处,请求指点,谢谢支持,一名努力的程序员......

C#基础(203)实例方法和重载方法总结,构造方法与实例方法总结,this关键字的更多相关文章

  1. java===java基础学习(12)---方法的重写和重载

    覆盖 / 重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为. 也 ...

  2. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

  3. C#基础知识之字符串比较方法:“==”操作符;RefernceEquals;String.Equals方法;String.Compare方法;String.CompareOrdinal方法。

    一.“==”操作符:String.Equals:ReferenceEquals 方法 1.在编程中实际上我们只需要这两种比较,c#中类型也就这两种 (1)值类型的比较:一般我们就是判断两个值类型实例各 ...

  4. 【转】Python3 操作符重载方法

    Python3 操作符重载方法 本文由 Luzhuo 编写,转发请保留该信息. 原文: http://blog.csdn.net/Rozol/article/details/70769628 以下代码 ...

  5. JAVA的List接口的remove重载方法调用原理

    前言 说真的,平常看源码都是自己看完自己懂,很少有写出来的冲动. 但是在写算法的时候,经常用到java中各种集合,其中也比较常用到remove方法. remove有重载函数,分别传入参数是索引inde ...

  6. [DOM Event Learning] Section 3 jQuery事件处理基础 on(), off()和one()方法使用

    [DOM Event Learning] Section 3 jQuery事件处理基础 on(),off()和one()方法使用   jQuery提供了简单的方法来向选择器(对应页面上的元素)绑定事件 ...

  7. Java语言程序设计(基础篇) 第六章 方法

    第六章 方法 6.2 定义方法 1.方法的定义由方法名称.参数.返回值类型以及方法体组成. 2.定义在方法头中的变量称为形式参数(formal parameter)或者简称为形参(parameter) ...

  8. c#反射重载方法(发现不明确的匹配)

    GetMethod(string name) 在反射重载方法时,如果调用此重载方法,会产生 发现不明确的匹配 的错误. 解决方案如下: GetMethod("MethodName" ...

  9. php魔术方法——属性重载方法

    php有一类很神奇的方法,这些方法是保留方法,通常不会在外部被显式调用,他们使用双下划线(__)开头,他们被称为魔术方法(Magic Methods).php官方也不建议定义其他双下划线开头的方法. ...

随机推荐

  1. fixed Oracle SQL报错 #ORA-01460: 转换请求无法实施或不合理

    最近遇到一个oracle错误,之前并没有遇到过,并不是select in超过1000个导致的,通过网上资料说是oracle版本导致,也有的说是oracle SQL过长导致. 然后通过自己实践应该说是o ...

  2. java开发面试问题

    Java面试题:java的垮平台原理 为什么要跨平台使用????? 其实说白了就是个操作系统支持的指令集是不一样的.我们的程序需要再不同的操作系统上运行这些代码. 但是不要说jvm是跨平台的,而真正跨 ...

  3. Abp + MongoDb 改造默认的审计日志存储位置

    一.背景 在实际项目的开发当中,使用 Abp Zero 自带的审计日志功能写入效率比较低.其次审计日志数据量中后期十分庞大,不适合与业务数据存放在一起.所以我们可以重新实现 Abp 的 IAuditi ...

  4. Intellij idea常用快捷键和技巧

    一.常用快捷键 搜索 double shift 全文搜索内容 ctrl + shift + f 搜索文件 Ctrl + shift + n 打开项目窗口  Alt + 1 智能代码补全 Ctrl+Sh ...

  5. 如何在mpvue下收集小程序的formId

    什么是formId formId是小程序可以向用户发送模板消息的通行证,简单而言,你只有获取到formId,把它交给后台,后台同学才能向用户发送通知消息,而这个通行证的有效期只有七天.这是微信为了防止 ...

  6. 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装OpenCV(离线方式和在线方式)(图文详解)

    不多说,直接上干货! 说明: Anaconda2-5.0.0-Windows-x86_64.exe安装下来,默认的Python2.7 Anaconda3-4.2.0-Windows-x86_64.ex ...

  7. 【原创】uC/OS II 任务切换原理

    今天学习了uC/OS II的任务切换,知道要实现任务的切换,要将原先任务的寄存器压入任务堆栈,再将新任务中任务堆栈的寄存器内容弹出到CPU的寄存器,其中的CS.IP寄存器没有出栈和入栈指令,所以只能引 ...

  8. jsp、jQuery、servlet交互实现登录功能

    做一个web项目,往往需要有一个登录模块,验证用户名和密码之后跳转页面.为了实现更好的交互,往往需要用到 jQuery 等实现一些友好提示.比如用户名或者密码输入为空的时候提示不能为空:点击提交的时候 ...

  9. (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)

    在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机 前提:服务器端安装桌面版的centos系统 CentOS Linux release 7.5.1804 (Core) ...

  10. 基本排序算法Golang

    摘要 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 冒泡排序 func BubbleSort(ve ...