前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#中方法的调用

C#中方法的调用

作者头像
zls365
发布2020-08-19 10:58:53
1.2K0
发布2020-08-19 10:58:53
举报
文章被收录于专栏:CSharp编程大全CSharp编程大全

1.同一个类中方法的调用:

静态方法可以直接调用静态方法

静态方法不能直接调用非静态方法,静态方法先生成。

非静态方法可以直接调用静态方法

如果静态方法要调用非静态的方法,必须使用实例成员

2.不同类中方法的调用

静态方法,使用类名.静态方法名称()

非静态方法使用,类的实例对象.方法名称()

3.方法的调用遵循的原则:一一对应原则,永远默认都是第一个实参赋值给第一个形参

* 类型需要一致,double--float,子类可以替换父类(反例) * 数量需要一致,params,还可以有默认值(反例) * 顺序需要一致 ,可以使用“参数=值”的方式,可选参数必须出现在所有必选按参数之后。 * 如果某个参数使用了(参数:值)的方式,那么之后的所有参数也必须使用这种格式。

4.普通参数传递时的特点

* 传递参数就是传递栈空间里面存储内容的副本

* 如果是值类型,那么栈空间里面存储的是真实的值

* 如果是引用那么栈空间里面存储的就是引用地址。

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace 方法调用的原则
{
    class Program
    {
        /*
         * 方法调用遵循的原则:一一对应原则,永远都是第一个实参赋值给第一个形参
         * 1.类型需要一致:(double-->float--int  子类可以替换父类)---【反例】
         * 2.数量需要一致:(params,还可以有默认值)---【反例】
         * 3.顺序需要一致:可以使用”参数:值“的方式,这种方式术语是--命名参数。(PS:普通的参数传递,术语是:【位置参数】-->就是说每个实参,必须一一形参的位置)
         */
 
        static void Main(string[] args)
{
            //2.数量需要一致:(params)---【反例】
            GetSameParams();
            GetSameParams(,,,);
 
            //2.数量需要一致:还可以有默认值)---【反例】
            ShowInfo();
            ShowInfo(, "哈哈");
 
            //3.顺序需要一致:可以使用”参数:值“的方式,这种方式术语是--命名参数。(PS:普通的参数传递,术语是:【位置参数】-->就是说每个实参,必须一一形参的位置)
 
              GetName(lastName: );  //正确调用方式
 
              GetName(age:, lastName: "fangsheng", firstName: "cao" );   //正确的调用方式,可以不必按照方法参数的顺序调用方法。【命名参数的方式调用】
            //GetName(lastName: "fangsheng", firstName: "cao",23);//错误调用方法的例子:命名参数必须出现在所有指定的固定参数后面。【//如果某个参数值,使用了命名参数的方式,那么后面所有的参数,也必须使用这种格式。】
 
        }
 
        #region 3.顺序需要一致:可以使用”参数:值“的方式,这种方式术语是--命名参数。(PS:普通的参数传递,术语是:【位置参数】-->就是说每个实参,必须一一形参的位置)
        /// <summary>
        /// 3.顺序需要一致:可以使用”参数:值“的方式,这种方式术语是--命名参数。(PS:普通的参数传递,术语是:【位置参数】-->就是说每个实参,必须一一形参的位置)
        /// </summary>
        /// <param name="firstName"></param>
        /// <param name="lastName"></param>
        static void GetName(string firstName, string lastName, int age)
{
 
        }
        #endregion
 
        #region   2.数量需要一致:(params,还可以有默认值)---【反例】
        /// <summary>
        ///2. 参数数组,数量可以随便传
        /// </summary>
        /// <param name="name"></param>
        /// <param name="age"></param>
        /// <param name="intParamsArray"></param>
        static void GetSameParams(string name, int age, params int[] intParamsArray)
{
 
        }
 
        #endregion
 
        #region 可选参数必须在所有必选参数后【错误范例】
        /// <summary>
        ///  可选参数必须在所有必选参数后【错误范例】
        /// </summary>
        /// <param name="age"></param>
        /// <param name="name"></param>
        //static void Show(int age = 30, string name)  //可选参数必须在所有必选参数后【错误范例】
        //{
 
        //}
        #endregion
 
        #region 2.数量需要一致:(params,还可以有默认值)---【反例】
        /// <summary>
        /// 2.数量需要一致:(params,还可以有默认值)---【反例】
        /// </summary>
        /// <param name="age"></param>
        /// <param name="name"></param>
        , string name = "")
        {
 
        }
        #endregion
 
        #region  1.类型需要一致:(double-->float--int  子类可以替换父类)---【反例】
 
        #region double-->--int
        /// <summary>
        /// double-->--int
        /// </summary>
        /// <returns></returns>
        static double GetValue()
        {
            ;
            return a;//返回int类型的数
        }
        #endregion
 
        #region double-->float
        /// <summary>
        /// double-->float
        /// </summary>
        /// <param name="num"></param>
        /// <returns></returns>
        static double GetValue(int num)
{
            float a = 1.34F;
            return a;
        }
        #endregion
 
        #region  返回值为父类,可以返回子类
        /// <summary>
        /// 返回值为父类,可以返回子类
        /// </summary>
        /// <returns></returns>
        static A GetValue1()
{
            B b = new B();
            return b;
        }
        #endregion
 
    }
        #region 父子类测试
    class A
    {
        int member;
    }
    /// <summary>
    /// B继承A
    /// </summary>
    class B : A
    {
 
    }
    #endregion
 
        #endregion
 
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CSharp编程大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档