C#的属性和方法

2024-09-07 05:20
文章标签 c# 方法 属性 .net netcore

本文主要是介绍C#的属性和方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

/C#中的属性:一种是在公共语言运行库的基类中定义的属性
//另一种是自己创建,可以向代码中添加附加信息的自定义属性

//自定义属性的声明方法:
//指定属性的访问级别---属性的类型---属性的名称---声明get访问器(或)set访问器的代码模块
/*
 *属性定义的语法格式
 *
 *访问修饰符  数据类型  属性名
 *{ 
 *    get
 *    {
 *      return 变量名;
 *    }
 *    set
 *    {
 *      变量名 = value ;
 *    }
 *}
 *
 *关于房屋内修饰符的说明
 *
 *private-----访问仅限制在声明它的类型的内部
 *       -----派生类也不能访问积累的private属性
 *protected ----可以被其所在类的实列(非继承)访问
 *          ----也可以杯同一程序集中的任何派生类访问
 *public ----不限制
 *internal---访问仅仅现在在当前的程序集合中
 *        ---派生类位于同一个程序集合中可以访问基类的internal属性
 */

    //方法
    //方法是包含一系列语句的代码块,每个执行指令都是在方法的上下文中完成的
    //方法声明包含private,public protected,internal
    //还包含new,static, virtual,override,sealed,abstract,extern
    /*
     * 方法的参数类型
     * 调用方法时可以给方法传递一个或多个值,传给方法的值叫做实参
     * 在方法内部接收实参的变量叫做形参,形参在紧跟着方法名的括号中声明
     * 声明方法参数时,可以通过关键字params,ref和out实现
     * 1:params参数用来指定在参数数目可变时采用的方法参数,params参数必须是一维数组
     * */

        //ref参数
        //ref参数使方法参数按引用传递,其效果是:当控制权传递回调用方法时,在方法中对参数
        //所作的任何更改都将反映在该变量中,如果要使用ref参数,则方法声明和调用方法都必须
        //显式使用ref关键字

        //out参数
        //out关键字用来定义输出参数,它会导致参数通过引用来传递,这与ref参数类似,不同之处在于
        //ref要求变量必须在传递之前进行初始化,而使用out关键字定义的参数,不用进行初始化
        //即可使用,如果要使用out参数,则方法声明和调用方法都必须显式使用out关键字

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;//C#中的属性:一种是在公共语言运行库的基类中定义的属性
//另一种是自己创建,可以向代码中添加附加信息的自定义属性//自定义属性的声明方法:
//指定属性的访问级别---属性的类型---属性的名称---声明get访问器(或)set访问器的代码模块
/**属性定义的语法格式**访问修饰符  数据类型  属性名*{ *    get*    {*      return 变量名;*    }*    set*    {*      变量名 = value ;*    }*}**关于房屋内修饰符的说明**private-----访问仅限制在声明它的类型的内部*       -----派生类也不能访问积累的private属性*protected ----可以被其所在类的实列(非继承)访问*          ----也可以杯同一程序集中的任何派生类访问*public ----不限制*internal---访问仅仅现在在当前的程序集合中*        ---派生类位于同一个程序集合中可以访问基类的internal属性*/
namespace AttributeAndMethodDemo1
{class MyClass{private string id = "";private string name = "";//属性的声明public string ID  //定义用户编号属性,该属性可读可写{get{return id;}set{id = value;}}public string Name  //星期属性,可读可写//Name只是一个代码,其他的也可以,为了便于阅读,可以用有意义的单词{get{return name;}set{name = value;}}//Params方法//params参数用来指定在参数数目可变时,采用的方法参数,params参数必须是一维数组public void UseParams(params string[] list){for(int i= 0; i<list.Length; i++){Console.Write(list[i]+ " ");}}//ref参数//ref参数使方法参数按引用传递,其效果是:当控制权传递回调用方法时,在方法中对参数//所作的任何更改都将反映在该变量中,如果要使用ref参数,则方法声明和调用方法都必须//显式使用ref关键字public void RefMethod(ref int i){i = 100;}//out参数//out关键字用来定义输出参数,它会导致参数通过引用来传递,这与ref参数类似,不同之处在于//ref要求变量必须在传递之前进行初始化,而使用out关键字定义的参数,不用进行初始化//即可使用,如果要使用out参数,则方法声明和调用方法都必须显式使用out关键字public void OutMethod(out int m){m = 200;}//方法的分类//方法分成:静态方法和非静态方法//static修饰的为静态方法public static int Add(int i, int j){return i + j;}//方法的重载//定义:指方法名称相同,但参数的数据类型、个数或顺序不同的方法public static double Add(double x, double y){return x + y;}public int Add( int m, int n, int l){return m + n + l;}}//属性的使用//  对象名称.属性名//方法//方法是包含一系列语句的代码块,每个执行指令都是在方法的上下文中完成的//方法声明包含private,public protected,internal//还包含new,static, virtual,override,sealed,abstract,extern/** 方法的参数类型* 调用方法时可以给方法传递一个或多个值,传给方法的值叫做实参* 在方法内部接收实参的变量叫做形参,形参在紧跟着方法名的括号中声明* 声明方法参数时,可以通过关键字params,ref和out实现* 1:params参数用来指定在参数数目可变时采用的方法参数,params参数必须是一维数组* */internal class Program{//Main方法的默认访问级别为privatestatic void Main(string[] args){MyClass mc = new MyClass();mc.ID = "DYJ";mc.Name = "DENG";Console.WriteLine(mc.Name);string[] arrayStr = new string[] {"11","22","33","44","55" };mc.UseParams(arrayStr);Console.WriteLine();int x = 50;//调用方法之前X的值Console.WriteLine("调用ref方法之前X的值为:");Console.WriteLine(x);//调用ref方法mc.RefMethod(ref x); //必须和ref关键字一起传递Console.WriteLine("调用了ref犯法之后的X的值为:");Console.WriteLine(x);int out_param;mc.OutMethod(out out_param);Console.WriteLine("调用了out参数方法之后的out_param的值为:" +  out_param);Console.WriteLine();//调用静态方法Console.WriteLine("调用MyClass的静态方法:Add,结果为:{0}",MyClass.Add(100, 200));Console.WriteLine("方法重载1:" + mc.Add(100,200,300));Console.WriteLine("方法重载1:" + MyClass.Add(10.5, 12.5));}}
}

这篇关于C#的属性和方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144168

相关文章

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

Go路由注册方法详解

《Go路由注册方法详解》Go语言中,http.NewServeMux()和http.HandleFunc()是两种不同的路由注册方式,前者创建独立的ServeMux实例,适合模块化和分层路由,灵活性高... 目录Go路由注册方法1. 路由注册的方式2. 路由器的独立性3. 灵活性4. 启动服务器的方式5.

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

Idea实现接口的方法上无法添加@Override注解的解决方案

《Idea实现接口的方法上无法添加@Override注解的解决方案》文章介绍了在IDEA中实现接口方法时无法添加@Override注解的问题及其解决方法,主要步骤包括更改项目结构中的Languagel... 目录Idea实现接China编程口的方法上无法添加@javascriptOverride注解错误原因解决方

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

c++中std::placeholders的使用方法

《c++中std::placeholders的使用方法》std::placeholders是C++标准库中的一个工具,用于在函数对象绑定时创建占位符,本文就来详细的介绍一下,具有一定的参考价值,感兴... 目录1. 基本概念2. 使用场景3. 示例示例 1:部分参数绑定示例 2:参数重排序4. 注意事项5.

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx