C#中is和as用法实例分析
作者:shichen2014 发布时间:2023-08-17 06:21:42
标签:C#,is,as,用法
本文实例讲述了C#中is和as的用法,对加深is与as用法的理解有一定的帮助借鉴作用。具体如下:
现来看个例子:
public class User
{
}
public class Group
{
}
class Program
{
static void Main(string[] args)
{
Object oUser = new User();
Object user = (Group)oUser;
}
}
这样会报错(InvalidCastException),由于C#安全机制,它会去判断一次。我们这里做了非法的转换。
Is做判断:is说判断对象是不是你要的那个类型(这里说User)
修改后的示例如下:
class Program
{
static void Main(string[] args)
{
Object obj = new User();
if (obj is User)
{
User user = (User)obj;
}
}
}
这样的话,我们在obj is User这里做了一次判断,我们刚才说了,(User)obj这样的操作(强制转换)编译器还会做一次操作,这样就有性能上面的消耗。来看看AS。
AS操作:如果说改对象就转换,不是则返回null.
class Program
{
static void Main(string[] args)
{
Object obj = new User();
User user = obj as User;
if(user==null)
{
// handle error
//....
}
}
}
注:个人比较喜欢用As,简化了操作也提高了性能,做一个NULL判断,直接处理这种异常也说很方便。
希望本文所述方法对大家的C#程序设计能有一定的帮助与借鉴价值。
0
投稿
猜你喜欢
- 背景:当我们有需求将HashMap转为Json格式的String时,切记不要使用HashMap的toString()方法,需要使用FastJ
- 优点1.一个调用者想创建一个对象,只要知道其名称就可以了。2.扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。3.屏蔽产品的具体实现
- 回顾:上一篇文章总结了影院售票系统核心部分-售票,整个项目也就完成了2/3了,需求中也要求了对销售信息的保存,今天就继续总结销售信息的保存以
- Android ListView的Item点击效果的定制
- eclipse导入appcompat项目报错解决办法我们在eclipse导入开源项目后,经常会发现找不到类似Theme.AppCompat.
- 概述Spring Boot 监控核心是 spring-boot-starter-actuator 依赖,增加依赖后, Spring Boot
- 在 C# 以二进制形式读取数据时使用的是 BinaryReader 类。BinaryReader 类中提供的构造方法有 3 种,具体的语法形
- BeanPostProcessor接口作用:如果我们想在Spring容器中完成bean实例化、配置以及其他初始化方法前后要添加一些自己逻辑处
- CircleImageView实现圆形头像代码分享,供大家参考,具体内容如下一、创建属性文件(attrs.xml)具体操作:1、在项目的va
- 本文研究的主要是高吞吐、线程安全的LRU缓存的相关内容,具体介绍如下。几年以前,我实现了一个LRU缓存用来为关键字来查找它的id。数据结构非
- Process#waitFor()阻塞问题有时需要在程序中调用可执行程序或脚本命令:Process process = Runtime.ge
- 一、判断字母string str = Console.ReadLine();if (char.isLetter(str)){}else if
- 在做多语言版本的时候,日期时间的格式话是一个很头疼的事情,幸好Android提供了DateFormate,可以根据指定的语言区域的默认格式来
- AOP我想大家都很清楚,有时候我们需要处理一些请求日志,或者对某些方法进行一些监控,如果出现例外情况应该进行怎么样的处理,现在,我们从spr
- 为了保持类型的安全性,默认情况下 C# 是不支持指针的,但是如果使用 unsafe 关键字来修饰类或类中的成员,这样的类或类中成员就会被视为
- 本文实例讲述了Java正则验证电话,手机,邮箱,日期,金额的方法。分享给大家供大家参考,具体如下:package com.hooypay.t
- springboot嵌套子类使用在实际项目里,我们会使用到一个User用户含有子类Address、这种嵌套子类在开发中会遇到很多问题,现在主
- 前言不知道大家对const和readonly这两个关键字的区别有什么了解,原来自己之前还真不清楚它们到底是怎么回事,那么如果你也不是很清楚的
- 快速排序是应用最广泛的排序算法,流行的原因是它实现简单,适用于各种不同情况的输入数据且在一般情况下比其他排序都快得多。快速排序是原地排序(只
- Java io简介Java io系统的设计初衷,就是为了实现“文件、控制台、网络设备”这些io设置的通信。例如,对于一个文件,我们可以打开文