zoukankan      html  css  js  c++  java
  • C#中方法的调用

    C#中方法的调用

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

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

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

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

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

    2.不同类中方法的调用

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

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

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

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

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

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

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

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

    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("cfs",23);
                GetSameParams("cfs", 23,111,222,333);
    
                //2.数量需要一致:还可以有默认值)---【反例】
                ShowInfo();
                ShowInfo(100, "哈哈");
    
                //3.顺序需要一致:可以使用”参数:值“的方式,这种方式术语是--命名参数。(PS:普通的参数传递,术语是:【位置参数】-->就是说每个实参,必须一一形参的位置)
    
                  GetName(lastName: "fangsheng", firstName: "cao",age: 23);  //正确调用方式
    
                  GetName(age:23, 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>
            static void ShowInfo(int age = 30, string name = "")
            {
    
            } 
            #endregion
    
            #region  1.类型需要一致:(double-->float--int  子类可以替换父类)---【反例】
    
            #region double-->--int
            /// <summary>
            /// double-->--int
            /// </summary>
            /// <returns></returns>
            static double GetValue()
            {
                int a = 1;
                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
    
       
    
    }
  • 相关阅读:
    fastclick.js插件使用
    iphone X 的适配
    常用js方法整理
    gulp(1) 的使用
    C# Datatable 添加列
    Microsoft visual studio已停止工作最全解决办法
    微服务
    获取指定页的记录
    谷歌浏览器安装ie_tab()报错The 'manifest_version' key must be present and set to 2 (without quotes)的解决办法
    Javascript常用代码汇总
  • 原文地址:https://www.cnblogs.com/caofangsheng/p/4508560.html
Copyright © 2011-2022 走看看