当前位置: 首页 > wzjs >正文

免费做app网站有哪些香洲网站建设

免费做app网站有哪些,香洲网站建设,企业门户网站设计,微网站 百度地图C#参数 一、值参数二、引用参数三、输出参数四、数组参数五、具名参数六、可选参数七、扩展参数(this参数)各种参数的使用场景总结 C#数据类型 一、值参数 声明时,不带修饰符的形参是值形参。 值类型 注意: 值参数创建变量的副…

C#参数

    • 一、值参数
    • 二、引用参数
    • 三、输出参数
    • 四、数组参数
    • 五、具名参数
    • 六、可选参数
    • 七、扩展参数(this参数)
    • 各种参数的使用场景总结

C#数据类型

在这里插入图片描述

一、值参数

声明时,不带修饰符的形参是值形参。

  1. 值类型
    在这里插入图片描述
    注意:
    • 值参数创建变量的副本
    • 对值参数的操作永远不改变变量的值
    class Program{static void Main(string[] args){Student student = new Student();int y = 100;student.AddOne(y);Console.WriteLine("y:{0}", y);//输出y:100}}class Student{public void AddOne(int x)//int x 为值参数{x = x + 1;Console.WriteLine("x:{0}", x);//输出x:101}}

在这里插入图片描述

  1. 引用类型,并且新创建对象
    在这里插入图片描述

注意:
- 值参数创建变量的副本
- 对值参数的操作永远不改变变量的值

    class Program{static void Main(string[] args){Student student1 = new Student() { Name = "Tim" };SomeMethod(student1);Console.WriteLine("{0},{1}", student1.GetHashCode(), student1.Name);//输出18543596,Tim}static void SomeMethod(Student stu){stu = new Student() { Name = "Tom" };Console.WriteLine("{0},{1}",stu.GetHashCode(), stu.Name);//输出54267293,Tom}}class Student{public string Name { get; set; }}

在这里插入图片描述

  1. 引用类型,只操作对象,不创建对象(传递的是执行对象的地址)
    在这里插入图片描述
    class Program{static void Main(string[] args){Student student1 = new Student() { Name = "Tim" };Console.WriteLine("{0},{1}", student1.GetHashCode(), student1.Name);//54267293,TimUpdateObject(student1);Console.WriteLine("{0},{1}", student1.GetHashCode(), student1.Name);//54267293,Tom}static void UpdateObject(Student stu){stu.Name = "Tom";Console.WriteLine("{0},{1}", stu.GetHashCode(), stu.Name);//输出54267293,Tom}}class Student{public string Name { get; set; }}

在这里插入图片描述

二、引用参数

引用参数是用ref修饰符声明的形参。与值形参不同,引用形参并不创建新的存储位置。相反,引用形参表示的存储位置恰是在方法调用中作为实参给出的那个变量的存储位置。

  1. 值类型
    在这里插入图片描述
    注意:
  • 引用参数并不创建变量的副本,都指向一个地址。
  • 使用ref修饰符显示指出——此方法的副作用是改变实际参数的值。
    class Program{static void Main(string[] args){int y = 1;SideEffect(ref y);Console.WriteLine("y:{0}",y);//输出 y:101}static void SideEffect(ref int x) {x = x + 100;Console.WriteLine("x:{0}", x);//输出 x:101}}

在这里插入图片描述

  1. 引用类型,创建新对象
    在这里插入图片描述
 class Program{static void Main(string[] args){Student student1 = new Student() { Name = "Tim" };Console.WriteLine("{0},{1}", student1.GetHashCode(), student1.Name);//54267293,TimSideEffect(ref student1);Console.WriteLine("{0},{1}", student1.GetHashCode(), student1.Name);//18643596,Tom}static void SideEffect(ref Student stu){stu = new Student() { Name = "Tom" };Console.WriteLine("{0},{1}", stu.GetHashCode(), stu.Name);//18643596,Tom}}class Student{public string Name { get; set; }}

在这里插入图片描述

  1. 引用类型,不创建新对象只改变对象值
    在这里插入图片描述
    class Program{static void Main(string[] args){Student student1 = new Student() { Name = "Tim" };Console.WriteLine("{0},{1}", student1.GetHashCode(), student1.Name);//54267293,TimSideEffect(ref student1);Console.WriteLine("{0},{1}", student1.GetHashCode(), student1.Name);//54267293,Tom}static void SideEffect(ref Student stu){stu.Name = "Tom";Console.WriteLine("{0},{1}", stu.GetHashCode(), stu.Name);//54267293,Tom}}class Student{public string Name { get; set; }}

在这里插入图片描述

三、输出参数

用out修饰符声明的形参是输出形参。输出形参不创建新的存储位置。输出形参表示的存储位置就是方法调用中作为实参给出的那个变量所表示的存储位置。

  1. 值类型
    在这里插入图片描述
    • 输出参数并不创建变量的副本

    • 方法体内必须有对输出变量的赋值

    • 使用out修饰符显示指出——此方法的副作用是通过参数向外输出值

      static void Main(string[] args)
      {Console.WriteLine("Please input first number:");string str1 = Console.ReadLine();double x = 0;bool b1 = double.TryParse(str1, out x);if (b1 == false) {Console.WriteLine("Input  error");return;}Console.WriteLine("Please input second number:");string str2 = Console.ReadLine();double y = 0;bool b2 = double.TryParse(str2, out y);if (b2 == false){Console.WriteLine("Input  error");return;}double z = x + y;Console.WriteLine("{0}+{1}={2}",x,y,z);}
      
 class Program{static void Main(string[] args){double x = 0;bool b = DoubleParse.TryParse("789", out x);if (b) {Console.WriteLine(x+1);}}}class DoubleParse{   //声明一个带有输出参数的函数public static bool TryParse(string input, out double result){try{result = double.Parse(input);return true;}catch{result = 0;return false;}}}
  1. 引用类型
    在这里插入图片描述
    class Program{static void Main(string[] args){Student stu = new Student();bool b = StudentFactory.Create("Tom", 20, out stu);if (b){Console.WriteLine("student {0}, age is {1}", stu.Name, stu.Age);}}}class Student{public string? Name { get; set; }public int Age { get; set; }}class StudentFactory{public static bool Create(string stuName, int stuAge, out Student result){result = new Student();if (string.IsNullOrEmpty(stuName)){    return false;}if (stuAge < 20 || stuAge > 80){                return false;}result = new Student() { Name = stuName, Age = stuAge };return true;}}

四、数组参数

必须是形参列表的最后一个,只能有一个,由params修饰。例如 String.FormatString.Split方法

 string str = "Time;Tom,Amy.Lisa";string[] result = str.Split(';', ',', '.');foreach (string s in result) {Console.WriteLine(s);}
 static void Main(string[] args){int result = CaculateSum(1, 2, 3);Console.WriteLine(result);}static int CaculateSum(params int[] intArray){int sum = 0;foreach (int i in intArray){sum += i;}return sum;}

五、具名参数

        static void Main(string[] args){PrintInfo(name: "Tim", age: 34);//输出Hello Tim, you are 34}static void PrintInfo(string name, int age) {Console.WriteLine("Hello {0}, you are {1}",name,age);}

优点:

  • 提高代码的可读性
  • 参数位置不受参数顺序的约束

六、可选参数

参数因为具有默认值而变得“可选”
不推荐使用可选参数

        static void Main(string[] args){PrintInfo();//输出Hello Tim, you are 34}static void PrintInfo(string name ="Tim", int age = 34) {Console.WriteLine("Hello {0}, you are {1}",name,age);}

七、扩展参数(this参数)

为目标数据类型追加方法

  • 方法必须是公有的、静态的,即被public static修饰
  • 必须是形参列表的第一个,由this修饰
  • 必须由一个静态类(一般类名为SomeTypeExtension)来统一收纳对SomeType类型的扩展方法
    class Program{static void Main(string[] args){double x = 3.14159;double y = x.Round(4);Console.WriteLine(y);//输出3.1416}}static class DoubleExtension{public static double Round(this double input, int digits){double result = Math.Round(input, digits);return result;}}
using System.Linq;namespace PropertyExample
{class Program{static void Main(string[] args){List<int> list = new List<int>() { 11,12,13,14,15};bool result = list.All(i => i > 10);Console.WriteLine(result);//输出True}}
}

各种参数的使用场景总结

  • 传值参数:参数的默认传递方式
  • 输出参数:用于除返回值外还需输出的场景
  • 引用参数:用于需要修改实际参数值
  • 数组参数:用于简化方法的调用
  • 具名参数:提供可读性
  • 可选参数:参数拥有默认值
  • 扩展参数(this参数):为目标数据类型追加方法

文章转载自:

http://oW4e2p0l.tdttz.cn
http://LYHHxXdP.tdttz.cn
http://nUUYJM9t.tdttz.cn
http://7YdNj5ZR.tdttz.cn
http://BZoerdqJ.tdttz.cn
http://uUlpP9Zj.tdttz.cn
http://hJVETkuO.tdttz.cn
http://hjScG8vO.tdttz.cn
http://1dMnvn7K.tdttz.cn
http://pDdSP5tf.tdttz.cn
http://m13FGmdv.tdttz.cn
http://yPkps6e7.tdttz.cn
http://5gHZAbmi.tdttz.cn
http://XaCWBJBI.tdttz.cn
http://Oua8GS6k.tdttz.cn
http://K0wjh4fP.tdttz.cn
http://VrMk85Zu.tdttz.cn
http://fXvsjQa0.tdttz.cn
http://jsQKB6sa.tdttz.cn
http://rPpG7QnE.tdttz.cn
http://T4T2t0ge.tdttz.cn
http://31V4XylW.tdttz.cn
http://r51tmRrM.tdttz.cn
http://7ZTIQ2cu.tdttz.cn
http://hnoPgv2g.tdttz.cn
http://GneqlIyI.tdttz.cn
http://n7855JOR.tdttz.cn
http://8KGRT8fU.tdttz.cn
http://6nrhT23N.tdttz.cn
http://ZeSqUcew.tdttz.cn
http://www.dtcms.com/wzjs/616268.html

相关文章:

  • 扬州建设公司网站做淘宝客网站哪个好用
  • 有经验的大连网站建设学计算机出来能干什么
  • 网站功能开发费用多少钱那个网站可以做宣传
  • 京东网站建设有哪些优点丽水市住房和城建建设局网站
  • 博罗网站开发深圳挖矿app开发
  • 重庆荣昌网站建设公司网站建设拿什么框架
  • seo针对网站做策划wordpress如何修复
  • 中国航空集团建设开发有限公司网站网站二级域名打不开
  • wordpress修改头像珠海百度推广优化排名
  • 网站建设业务前景机械设计网站有哪些
  • 网站广告位代码上海云站网络技术服务中心
  • 网站解析域名时间查企业不要钱的软件
  • 网站设计 手写网络设计方案包括哪些
  • 百度网站适配代码虚拟云主机wordpress必攻击
  • 做网站太麻烦了中国加工网招聘信息
  • 网站死循环视频背景制作软件app
  • 建设网上银行app下载安装东莞正规的免费网站优化
  • 网络彩票网站开发网站开发常用中间件
  • 企业网站模板 html电子商务网站设计原理名词解释
  • 中国搜索网站排名永久免费建站空间
  • 东莞网站排名优化价格网站重构
  • 如何制作个人网站教程虚拟主机 删除网站缓存
  • 大连网站建设 青鸟传媒名站在线
  • 儿童摄影网站建设怎么自己做三个一网站
  • 潍坊网站建设优化推广佛山营销手机网站建设
  • 织梦网站建设选项卡教程建设地区网站建议
  • 做网站维护要什么专业搭建什么平台
  • 做网站看百度脸色轻松学做网站
  • 切图网站建设专业开发网站企业
  • 微网站难做么搜索引擎排行榜