zoukankan
html css js c++ java
.net3.0中的扩展方法(示例)
先定义一个类Utils,在该类中定义了一个string类的扩展方法_IsNull
using
System;
namespace
LinqDemo.App_Code
{
public
static
class
Utils
{
/**/
///
<summary>
///
传统写法
///
</summary>
///
<param name="s"></param>
///
<returns></returns>
public
static
bool
IsNull(
string
s)
{
return
string
.IsNullOrEmpty(s);
}
/**/
///
<summary>
///
定义string类的一个扩展方法(注意方法签名中的this关键字,且必须定义在静态类中)
///
</summary>
///
<param name="s"></param>
///
<returns></returns>
public
static
bool
_IsNull(
this
string
s)
{
return
string
.IsNullOrEmpty(s);
}
}
}
接下来使用这个扩展方法
using
System;
using
LinqDemo.App_Code;
//
这里只要引用扩展方法所在类的命名空间即可
namespace
LinqDemo
{
class
Program
{
static
void
Main(
string
[] args)
{
string
s
=
""
;
//
这里可以看到_IsNull已经变成string类的一个扩展方法了,vs2008 IDE环境也可以自动感知此方法
Console.WriteLine(s._IsNull());
//
string类的扩展方法(这个有点类似javascript的prototype)
Console.WriteLine(
"
------------------
"
);
Console.WriteLine(Utils._IsNull(s));
//
扩展方法也可以这样当作常规方法来调用
Console.WriteLine(
"
------------------
"
);
Console.WriteLine(Utils.IsNull(s));
//
当然这样的传统写法也是可以的
Console.ReadLine();
}
}
}
小记:.net3.0中的扩展方法在使用效果上看,几乎与javascript中的prototype如出一辙,javascript中如果在String的prototype原型上定义了某个方法,会使所有String的实例都能直接使用该方法,参看以下js代码
<
script type
=
"
text/javascript
"
>
String.prototype._IsNull
=
function
()
{
return
(
this
==
""
||
this
==
null
||
this
==
"
undefined
"
);
}
var
s
=
""
;
document.write(s._IsNull())
<
/
script>
作者:
菩提树下的杨过
出处:
http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
查看全文
相关阅读:
java:选择排序
java:快速排序
MYSQL 5.7版本修改密码
多级代理下获取客户端真实IP
map相关操作:map遍历,map转换为list
【导航】微信开发者相关网址导航
【java】微信开发后台官方后台配置篇
HTML页面加载loading
表单JS提交失效
后台request获得所有参数(当你不知道它包含什么参数)
原文地址:https://www.cnblogs.com/yjmyzz/p/1063898.html
最新文章
关于fluent中的压力(一)
ICEM CFD多核并行划分网格设置
原博客地址,本博客是从CSDN搬运过来的
【读MFiX源代码】番外:如何利用gdb调试mfix程序?并且用Visual studio code将debug可视化
【Fortran,MFiX】Fortran语言浮点数 双精度数 数值精度和下溢问题
【MFiX碎片知识】QMOM理论是干什么的?
bash获取当前所在文件夹名
【读MFiX源代码】番外:如何利用gdb调试mfix程序?并且用Visual studio code将debug可视化
【读MFiX源代码】番外:calc_thermo_des.f
MFiX带化学反应DEM能用SMP并行吗?
热门文章
【MFiX有反应算例设置】1 usr_rates.f和usr_rates_des.f(以tutorial的silane_pyrolysis_3d为例)
初步解读mfix中的stiff chemistry solver(刚性化学求解器)
Eclipse导入Web项目后代码不报错但项目报错(左上角有红叉)解决方案
eclipse中启动Tomcat时报错——Several ports (8005, 8080, 8009) required by Tomcat v8.5 Server at
AJAX:校验用户名是否被注册
javaweb:11.上传文件之目录打散
javaweb:校验密码验证码登陆—表单
servlet三大作用域:request,session,application
JSP&Servlet实现简单的验证码登陆
C#常用控件属性及方法介绍
Copyright © 2011-2022 走看看