is,as,sizeof,typeof,GetType
这几个符号说来也多多少少的用过,今天就根据ProC#的讲述来总结一下:
1、 IS:
检查变量类型是否与指定类型相符,返回True ,False.不报错.
老实说,我没怎么用过。看看下面的实例代码,很容易理解:
int i = ; if (i is object) //ture or false
{
Response.Write("i is object</br>");
}
但是,更经常的用法,在于判断一个未知类型(Object)是否与指定类型相符.











而在这个时候,我经常用as来代替使用.
2、AS:
进行类型转换,如果不成功,返回null, 不报错.





而在实际的开发中,as 用的较多,通常在获得一个对象的时候,并不知道其类型,用此转换成功后才能使用,这一点倒和IS有几分相似的地方.
应用一:







应用二:
CheckBox cb = (CheckBox)Repeater1.Items[i].FindControl("Clyb_xs");
HiddenField hf = (HiddenField)Repeater1.Items[i].FindControl("Hlyb_id"); button btn= form1.FindControl("btn") as Buttonl;
//Note: normally,here is GridView or others Data show Contorls
if (btn != null)
{ //code here
}
这个时候,用Is也可以达到目的






3、可空类型:
比如int 是不能为null的,但是如果这样标识就可以:

??: 结合可空类型使用的符号, Format: a ?? b; 如果a 为null,则返回b的值,不然返回a的值.
单要注意,a,b必须有一个为可空类型:





Sizeof: 用于返回值类型在内存中占的大小,注意,只能是值类型,不能为引用类型:


typeof : 获得类型的System.Type 表示。
GetType():如果要获得对象在运行时的类型,可以用此方法。
应用:







typeof 在反射的时候,也有很大用途,随后学习到反射的时候再Demo.
4、sender 参数的应用(通过sender获取引发该事件的控件)
//每个事件的sender参数就是引发控件的事件源 protected void LinkButton1_Click(object sender, EventArgs e)
{
LinkButton lbtn = sender as LinkButton; //可以对lbtn处理
}
is,as,sizeof,typeof,GetType的更多相关文章
- C# typeof Gettype is as &拆箱 装箱
有时候,我们不想用值类型的值,就是想用一个引用..Net提供了一个名为装箱(boxing)的机制,它允许根据值类型来创建一个对象,然后使用对这个新对象的一个引用. 首先,回顾两个重要的事实,1.对于引 ...
- typeof,GetType
typeof: 是运算符,获得某一类型的 System.Type 对象. Int32 t = new Int32(); Type t = typeof(int); GetType: 是方法,获取当前实 ...
- [C#]typeof,Gettype()和is的区别
typeof 参数是一个类型名称,比如你自己编写的一个类 GetType()是类的方法,继承自object,返回该实例的类型 is 用来检测实例的兼容性(是否可以相互转换) 例: class Anim ...
- 笔记16 C# typeof() & GetType()
C#中任何对象都具有GetType()方法,它的作用和typeof()相同,返回Type类型的当前对象的类型.typeof(x)中的x,必须是具体的类名.类型名称等,不可以是变量名称:GetType( ...
- sizeof()与Marshal.SizeOf()的不同
在.NET中一般都是通过sizeof()或Marshal.SizeOf()来获取数据类型的大小,来简要地看一下它们二者有何不同. sizeof() sizeof()在MSDN中的介绍是,在编译时获得一 ...
- Marshal.SizeOf和sizeof的区别
sizeof在非Unsafe环境下只能用于预定义的一系列类型,如Int,Short等等.而在Unsafe环境下,sizeof可以被用于值类型,但是值类型中不可以有引用类型,否则C#编译器会报错: er ...
- 编程基础-c语言中指针、sizeof用法总结
1.指针 学习 C 语言的指针既简单又有趣.通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的.所以,想要成为一名优秀的 C 程序员,学习指针是很有必要的. ...
- CSharpGL(36)通用的非托管数组排序方法
CSharpGL(36)通用的非托管数组排序方法 如果OpenGL要渲染半透明物体,一个方法是根据顶点到窗口的距离排序,按照从远到近的顺序依次渲染.所以本篇介绍对 UnmanagedArray< ...
- C#调用C++DLL传递结构体数组的终极解决方案
在项目开发时,要调用C++封装的DLL,普通的类型C#上一般都对应,只要用DllImport传入从DLL中引入函数就可以了.但是当传递的是结构体.结构体数组或者结构体指针的时候,就会发现C#上没有类型 ...
随机推荐
- webp 初探
WebP是Google新推出的影像技术,它可让网页图档有效进行压缩,同时又不影响图片格式兼容与实际清晰度,进而让整体网页下载速度加快. 如果我们能将其应用在现有的图片上,将可以进一步减少图片大小加快页 ...
- Android二维码开源项目zxing用例简化和生成二维码、条形码
上一篇讲到:Android二维码开源项目zxing编译,编译出来后有一个自带的測试程序:CaptureActivity比較复杂,我仅仅要是把一些不用的东西去掉,用看起来更方便,二维码和条形码的流行性自 ...
- 求最小的k个数
和高速排序有点类似,利用高速排序的划分算法, 划分算法见http://blog.csdn.net/buyingfei8888/article/details/8997803 依据int partiti ...
- Head First SQL笔记
看的时候总结了一下,如下: Chapter 1: 创建数据库 CREATE DATABASE database_name; 使用数据库 USE database_name; 创建表 CRATE TAB ...
- WebApi个人理解概要
WebApi概要 Global文件的作用: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public class MvcApplication : System.We ...
- DevExpress ASP.NET 使用经验谈(5)-通过ASPxGridView实现CRUD操作
这节,我们将通过使用DevExpress的ASPxGridView控件,实现对数据的CRUD操作. 首先,我们在解决方案中,添加一个网站: 图一 添加新网站 图二 添加DevExpress.Data. ...
- objective-C学习笔记(三)数据成员:属性与实例变量
类型成员 Type Member 结构体 struct 的成员很简单,只有变量. 类的成员就很多了: 数据成员 data member 描述对象(本讲重点) · 实例变量 instance vari ...
- NSFileManager的应用
单例,是在 一个文件中只创建一次就能够全部一起共享,多创建的地址是相同的 NSFileManager *manager=[NSFileManager defaultManager]; 是一个单例 ...
- BZOJ 1016: [JSOI2008]最小生成树计数( kruskal + dfs )
不同最小生成树中权值相同的边数量是一定的, 而且他们对连通性的贡献是一样的.对权值相同的边放在一起(至多10), 暴搜他们有多少种方案, 然后乘法原理. ----------------------- ...
- eclipse手动添加源码
在开发过程中,有的时候需要我们自已手动去添加一些源码文件,但是由于我们可能在eclipse中安装了jad反编译插件,我们再用“Ctrl + 鼠标左键”的话,会打开已经反编译好的class文件,而不是带 ...