参考页面:

http://www.yuanjiaocheng.net/webapi/config-webapi.html

http://www.yuanjiaocheng.net/webapi/web-api-route.html

http://www.yuanjiaocheng.net/webapi/parameter-binding.html

http://www.yuanjiaocheng.net/webapi/action-method-returntype.html

http://www.yuanjiaocheng.net/webapi/web-api-reqresq-format.html

所有类型最终都从System.Object类型派生。

最基本方法(object的公共方法):

1.Equals:如果两个对象具有相同的值,返回true.

2.GetHashCode:返回对象值得一个哈希码,如果某个类型的对象要在一个哈希表集合众作为key使用,该类型应重写该方法。

3.ToSting,返回一个String对象

4.GetType:返回从Typt派生的一个对象实例,指出该对象是什么类型。返回的type对象可以和反射类配合使用,从而获取与对象的类型有关的元数据信息。

以下为受保护的方法

5.MemberwiseClon:非虚方法,能创建类型的一个新实例,并将新对象的实例字段设与this对象的实例字段完全一致,返回的是一个对新实例的一个引用。

6.Finalize:在垃圾回收时会调用该虚方法。

关于new操作符  曹衍涛

Employee e=new Employee("ConstructorParam1");

1.他计算类型及其所有基类型中定义的所有实力字段需要的字节数。 堆上每一个对象都需要一些额外成员——“类型对象指针(type object pointer)

”和“同步索引块(sync block index)”,这些成员由ClR(common language runtime)用于管理对象。这些额外成员的字节数会计入对象大小。

2.他从托管堆中分配制定类型要求的字节数,从而分配对象的内存,分配的所有字节都设为零。

3.他初始化对象的类型对象指针和同步索引成员。

4.调用类型的实例构造器,向其传入在对new的调用中制定的任何实参。(上边ConstructorParam1即为实参)

new执行完这些操作后会返回指向新建对象一个引用(或指针)。上边这个引用会保存到变量e中,后者具有Employee类型

无法显示释放分配给一个对象的内存,CLR采用垃圾回收机制。

类型转换

CLR最重要的特性之一就是类型安全性。

c#可以随意将一个对象转换为他的任何基类,当将该类型转化为他的派生类时需要进行显示转换,该转换可能会在运行时失败。

使用is和as操作符来转型

is检查一个对象是否兼容于指定类型,返回true或false,is操作符不会抛出异常。

Object o=new Object();

Boolean b1 =(o is Object)//返回true

Boolean b2 =(o is Employee)//返回false

如果对象引用为null,总是返回false

is通常这样使用

if(o is Employee)

{

Employee e=(Employee) o;

//在if剩余语句中用e

}

这样写CLR实际检查了两遍数据类型

as为其简化写法

Employee e= o as Employee;

if(e!=null)

{

//剩余语句用e

}

这样写CLR检查o是否兼容Employee,是的话返回同一对象的非null引用。

c# 基础 object ,new操作符,类型转换的更多相关文章

  1. JS基础-变量类型和类型转换

    JS 变量类型 JS中有 6 种原始值,分别是: boolean number string undefined symbol null 引用类型: 对象 数组 函数 JS中使用typeof能得到哪些 ...

  2. LINQ系列:Linq to Object投影操作符

    投影是指在将序列中的元素转换为一个自定义形式的操作.投影操作符Select和SelectMany用于选择出赋予了适当功能的值.SelectMany操作符可以处理多个集合. LINQ表达式语法: 1. ...

  3. LINQ系列:Linq to Object生成操作符

    生成操作符从现有序列值中创建新的序列. 1. Empty  Empty操作符返回一个指定类型的空集. 1>. 原型定义 public static IEnumerable<TResult& ...

  4. LINQ系列:Linq to Object转换操作符

    转换是指将输入对象的类型转变为序列的动作. 1. AsEnumerable AsEnumerable操作符将查询的输入以IEnumberable(T)类型返回. 2. Cast Cast操作符将IEn ...

  5. LINQ系列:Linq to Object量词操作符

    量词操作符返回一个Boolean值,指示序列中是否存在部分或全部元素符号指定条件.LINQ中量词操作符包括:All.Any和Contains. 1. All All操作符判定在集合中是否所有的值都满足 ...

  6. javascript基础(二)类型转换

    原文http://pij.robinqu.me/ 类型转换 当期望使用一个布尔值的时候,可以提供任意类型值,JavaScript将根据需要自行转换类型.类型转换可以分为隐式转换和显式转换. 显式转换 ...

  7. HTML基础--元素类型及类型转换

    元素类型及类型转换 一.XHTML元素分类 根据css显示分类,XHTML元素被分为三种类型:块状元素,内联元素,可变元素 1.块状元素(block element) 1)块状元素在网页中就是以块的形 ...

  8. C#基础 常用语&数据类型定义&类型转换

    int temp = Console.Read(); Console.WriteLine(temp); Console.Read(); Console.Write("  ");直接 ...

  9. <基础> PHP 进阶之 类型转换

    引用官方的解释 PHP 在变量定义中不需要(或不支持)明确的类型定义:变量类型是根据使用该变量的上下文所决定的.也就是说,如果把一个 string 值赋给变量$var,$var 就成了一个 strin ...

随机推荐

  1. nodejs进阶(5)—接收请求参数

    1. get请求参数接收 我们简单举一个需要接收参数的例子 如果有个查找功能,查找关键词需要从url里接收,http://localhost:8000/search?keyword=地球.通过前面的进 ...

  2. 使用技术手段限制DBA的危险操作—Oracle Database Vault

    概述 众所周知,在业务高峰期,某些针对Oracle数据库的操作具有很高的风险,比如修改表结构.修改实例参数等等,如果没有充分评估和了解这些操作所带来的影响,这些操作很可能会导致故障,轻则导致应用错误, ...

  3. 算法与数据结构(八) AOV网的关键路径

    上篇博客我们介绍了AOV网的拓扑序列,请参考<数据结构(七) AOV网的拓扑排序(Swift面向对象版)>.拓扑序列中包括项目的每个结点,沿着拓扑序列将项目进行下去是肯定可以将项目完成的, ...

  4. 在Linux系统下运行微信Web开发者工具

    微信Web开发者工具只有window版本和mac版本,如果想要在Linux系统下运行微信Web开发者工具,需要花费很大周折. 注:带 * 的步骤或文件为不确定是否管用的步骤或文件.本人系统为Linux ...

  5. maven-sprigmvc-mybatis配置

    pom.xml配置 <?xml version="1.0"?> <project xsi:schemaLocation="http://maven.ap ...

  6. Java程序:从命令行接收多个数字,求和并输出结果

    一.设计思想:由于命令行接收的是字符串类型,因此应先将字符串类型转化为整型或其他字符型,然后利用for循环求和并输出结果 二.程序流程图: 三.源程序代码:   //王荣荣 2016/9/23     ...

  7. Nginx反向代理,负载均衡,redis session共享,keepalived高可用

    相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...

  8. Android(安卓)-------CardView

    1.activity_main.xml <android.support.v7.widget.CardView android:id="@+id/cardView" andr ...

  9. jQuery中取消后续执行内容

    <html xmlns="http://www.w3.org/1999/xhtml"><head>    <title></title&g ...

  10. MySQL 优化之 ICP (index condition pushdown:索引条件下推)

    ICP技术是在MySQL5.6中引入的一种索引优化技术.它能减少在使用 二级索引 过滤where条件时的回表次数 和 减少MySQL server层和引擎层的交互次数.在索引组织表中,使用二级索引进行 ...