方法的签名
包括参数个数、参数类型、方法返回值



base和this关键字
1.使用base关键字,就可以使用父类中的字段、属性、方法
2.一旦父类中存在有参数的构造函数,那么子类就必须使用base来覆盖父类中的构造函数,base取的父类中参数最多的构造函数

构造函数
不同的参数会使用不同的构造函数

类的属性  GET、SET

public string Name { get; }

上一段的意思是:仅仅声明GET取值函数,能在构造函数中设置函数内部的变量,GET只是针对类外部对类的访问限制使用的,在类的内部,对Name是没有限制的,赋值和使用都是可行的,但通常类的内部仅使用内部变量,防止程序意外出错

部分类

只能使用同一种修饰符,其中一类为public,其他类也必须为public。如果其中一个类为抽象类,那合并后整个类都将被视为抽象类,其中一个类为密封类,那合并后整个类都将视为密封类

类型安全

如果两个类型或对象,类型不一样,也不存在继承关系,就不能相互转换

属性

特点:不占内存空间

因为一定要和私有字段配合使用,建立对象后,外部实际上是通过属性调用类内部的字段,这是编译器对属性的特殊处理,为的就是让属性可以灵活的控制输入和输出的字段值,通过属性这种特殊的方法

Readonly

此关键字定义的字段,只能在初始化或者构造函数中赋值

重要问题

只能在类中声明public protected private等字段属性

  1. public static readonly man ss = new man("spike"); // 用readonly声明一个类
  1. public readonly string s = "spike"; // 用readonly声明一个字段
  1. private string SqlConnString => SqlHelper.GetConnSting(); /// VS2015才能用,这两句话是等同的,=>简写了一个readonly
  2. private readonly string SqlConnString => SqlHelper.GetConnSting();

特性
  1. [logAction(ActionMessage="this is Message")];
  1. public class logAction :ActionFilterAttribute
  2. {
  3. public string ActionMessage { get; set; }
  4. public override void OnActionExecuted(ActionExecutedContext filterContext)
  5. {
  6. filterContext.HttpContext.Response.Write("ActionExecuted"+ActionMessage);
  7. base.OnActionExecuted(filterContext);
  8. }
  9. }
为什么在controller里面写这个特性[logAction(ActionMessage="this is Message")];会把特性中的方法都执行呢?

我的理解:这个不是执行,是加载,既然logAction(ActionMessage="this is xxx")可以实现类的赋值,那么说明已经声明了这个类的对象了,继而说明类中的方法已经动态加载到内存中,实现了方法的负载,这应该就是特性在ASP.NET中的应用

C#-类 字段 属性 方法 特性的更多相关文章

  1. c#基础3-方法的重载静态和非静态,字段属性,方法

    方法的重载概念:方法的重载指的就是方法的名称相同给,但是参数不同.参数不同,分为两种情况1).如果参数的个数相同,那么参数的类型就不能相同.2).如果参数的类型相同,那么参数的个数就不能相同.***方 ...

  2. Delphi中TStringList类常用属性方法详解

    TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 先把要讨论的几个属性列出来: 1.CommaText 2.Delim ...

  3. day 1类 对象 属性 方法

    1. 解决吃啤酒鸭的问题 第一种方式(面向过程): 1)养鸭子 2)鸭子长成 3)杀 4)作料 5)烹饪 6)吃 7)卒 第二种方式(面向对象): 1)找个卖啤酒鸭的人 2)给钱 交易 3)吃 4)胖 ...

  4. java-通过反射获取目标类的属性,方法,构造器

    首先定义一个urse package com.studay_fanshe; public class User { private String uname; private int age; pri ...

  5. 【delphi】TStringList类常用属性方法详解

    TStringList 常用方法与属性 var List: TStringList; i: Integer; begin List := TStringList.Create; List.Add('S ...

  6. c#自定义ORM框架---(泛型&反射&实体类扩展属性<附带通用增、删、查、改>)

    该教材主要是运用到泛型.反射和实体类扩展属性 步骤一.建立扩展属性类 实体类扩展属性要继承Attribute基类完成 [AttributeUsage(AttributeTargets.Property ...

  7. iOS开发之遍历Model类的属性并完善使用Runtime给Model类赋值

    在上篇博客<iOS开发之使用Runtime给Model类赋值>中介绍了如何使用运行时在实体类的基类中添加给实体类的属性赋值的方法,这个方法的前提是字典的Key必须和实体类的Property ...

  8. Java基础知识强化85:System类之arraycopy()方法(数组拷贝)

    1. arraycopy方法(数组拷贝) public static void arraycopy(object src,int srcPos,Object dest,int destPos, int ...

  9. Java基础知识强化83:System类之gc()方法(垃圾回收)以及和finalize()区别

    1. System概述: System类包含一些有用的类字段和方法.它不能被实例化. 2. gc()方法:垃圾回收器 public static void gc()       调用gc方法暗示着Ja ...

随机推荐

  1. ansible yum 模块 安装 vsftp

    [root@ftp:/root] > ansible ansible01 -u root -k -m yum -a 'name=vsftpd state=latest' SSH password ...

  2. vue文件目录结构

    使用node和npm环境,很容易搭建起一个vue环境.搭建完成以后,项目基本结构,如下图所示: 1.build: bulid文件夹保存的是一些webpack的初始化配置 2.config: confi ...

  3. ASP.NET-GUID扩展类使用

    在NUGET上有一个GUID的类,安装试用一下它的方法 将string转为guid对象 Guid ad = new Guid("{99009327-15D2-4A69-B015-BEAC11 ...

  4. ASP.NET-关于Global.asax的作用

    这个文件相当于一个应用程序量级的 全局文件,比如你想写一个变量在项目中的所有文件中都能读取是就写在这里面 Application["name"] = "zhangran& ...

  5. HDU 4311 Contest 2

    求的是曼哈顿距离.可以把X,Y的距离分开来求.其中,求X.Y的距离可以通过排序后递推的方式求出值的. #include <iostream> #include <algorithm& ...

  6. True or False? and WHY??? Java HashSet Contains

    import java.util.HashSet; public class MyClass { public String s; public MyClass(String s) { this.s ...

  7. fieldset 标签 -- 对表单进行分组

    转自:https://xhmaomy-163-com.iteye.com/blog/1066977 fieldset——一个不常用的HTML标签 fieldset 标签 -- 对表单进行分组 在for ...

  8. 05:Cave Cows 1 洞穴里的牛之一

    总时间限制:  10000ms 单个测试点时间限制:  1000ms 内存限制:  262144kB 描述 很少人知道其实奶牛非常喜欢到洞穴里面去探险.     洞窟里有N(1≤N≤100)个洞室,由 ...

  9. http请求post,返回excel文件,并接收

    1.post的方法里要加responseType: 'arraybuffer'参数,不然下载的excel会乱码 2.使用{type: "application/vnd.ms-excel&qu ...

  10. CentOS_mysql8.0_错误

    #参考资料 CSND:https://blog.csdn.net/y_server/article/details/78781177 博客园:http://www.cnblogs.com/testwa ...