网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C#应用
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.C#中利用Markup Service实现HTML.
.c#摄氏华氏转换.
.C#多线程-不同线程之间通过事件委.
.发送邮件程序(Csharp2005).
.RSS制作(C#) - 使用XML DOM .
.信息反馈-邮件(数据库是XML) .
.C#中水晶按钮的程序生成.
.C#中加强ListView控件的功能.
.C#中调用Windows API的要点.
.C#中的函数重载.
.关于C#中的DLLImport.
.如何在无刷新页面的情况下实现客.
.C#操作Word文档(Office 2007).
.SQL查询语句对象化的实现(C#).
.C#实现类似qq的屏幕截图程序.
.在指定应用程序域中执行代码.
.获取cpu序列号,硬盘ID,网卡MAC地.
.用Visual C#调用Windows API函数.
.应用程序上屏蔽FLASH控件的右键菜.
.C#中实现随机时间的获取.

C#2.0终于有了?:便捷判断的单分支版

发表日期:2006-1-6


    C#2.0实现的Nullable数据类型,虽然说只是一个小小的cookie,但不得不说是C#矢志不渝的延续了它人性化的特点,我们终于不用再使用object来存放简单数据来通过==null测试。从表面上看这个功能或许并无太大的创新意义,但不知你是否也和我一样在记忆里埋有对类似int a=null;通不过编译时的抱怨?

    关于Nullable的详细介绍可以参考C#2.0的新特新和很多的blog文章,这不是我主要想说的内容。只是2.0为了让Nullable类型和non-Nullable数据之间转换,提供了一个新的操作符"??"比较有意思。这个操作符的作用很简单,用法如下:
 int? a = 1;
 int? b = null;
 int c = a; // compile error :(
 int c = a ?? 100; // right
 int d = a + b; // compile error yet
 int d = a + b ?? -1; // right
    看到这个"??"的使用,你第一时间能想到什么呢?我第一时间就想到了三元操作运算 ? :!

    在代码中书写一定的三元运算表达式,很多时候能给我们的代码带来简洁性和紧凑感。不过任何东西都会美中不足,这个经典的三元操作必须有两个分支(嗯,如果一个分支就不是三元了),所以我有时不得不为了不使用if语句,而写下一些自感丑陋蹩脚代码:
    1.
string param = Request.Params["param"];
if ( param == null )
{
    param = defaultValue;
}    或
string param = Request.Params["param"] == null ? defaultValue : Request.Params["param"];    我是比较反感把类似Request.Params["key"]、ViewState["key"]以及Hasttable["key"]这类的相同代码写超过一遍的,因为作为key的literal string不能被编译器检查,出现拼写错误后是非常让人抓狂的。

    2.
public string GetValue
{
    get
    {
        if ( this.value == null )
        {
            return string.Empty;
        }
        else
        {
            return this.value;
        }
    }
}    或
public string GetValue
{
    get
    {
        return this.value == null ? string.Empty : this.value;
    }
}    使用?:后貌似不错了,但似乎还不是我们希望的终极无间...

    在C#2.0中,借助"??"运算符,这类代码将变得非常sexy:  1.  string params = Reqeust.Params["param"] ?? defaultValue;
 2.  public string GetValue { get { return this.value ?? string.Empty; } }

上一篇:C#下从HTML文件生成DOM树 人气:8637
下一篇:.NET下对二进制文件进行加密解密(C#) 人气:9634
浏览全部C#的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐