C#3.0新特性----扩展方法(Extension Methods)初探

最近Orcas Beta1刚出,C#3.0炒得越来越热,一些新特性也是相当诱人,这几天,把.net3.0的环境终于是搭上了, 配环境的经验以后再说,这里先谈一下,C#3.0里的一个新特性,Extension Methods扩展方法,个人理解,有点仿JavaScript里的Prototype,主要是不用重编译,就可对一个类型加入方法,引用类型和值类型都是可以的.

扩展方法允许开发人员往一个现有的CLR类型的公开契约(contract)中添加新的方法,而不用生成子类或者重新编译原来的类型。扩展方法有助于把今天动态语言中流行的对duck typing的支持之灵活性,与强类型语言之性能和编译时验证融合起来。

扩展方法促成了好多有用的使用场景,并使在作为Orcas一部分发布的.NET版本中引进的非常强大的LINQ查询框架成为可能。

下面是一个简单的示例:

public static class  test
{
    
public static bool fun(this string
 s)
    
{
        
return s.Length>10&&s.Contains("test"
);
    }

    
public static double cal(this int a)
    
{
        
return a*3.14159*
a;
    }

    
public static bool In(this object o,IEnumerable c)
    
{
        
foreach(object obj in
 c)
            
if
(obj.Equals(o))
                
return true
;
        
return false
;
    }

}

class必须是static,every method也必须是public static,其中的this是指要把方法加入的类型,如string就是添加到string类型中,前面两个方法随便做个测试,没什么意义的,第三个方法,是遍历一个集合,判断是否包含o.

下面是Main代码块:

class  Program
    
{
        
static void Main(string
[] args)
        
{
            
string s="first test"
;
            Console.WriteLine(s.fun());
            
int a=42324
;
            Console.WriteLine(a.cal());
            
string[] str={"abcd","efgh","hijk","dog","cat","fire","lay"}
;
            Console.WriteLine(
"dog"
.In(str));
        }

    }
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现在多张图片下方添加文字的效果,同样可以使用HTML中的`<div>`和CSS中的`position`属性。 首先,将每张图片和对应的文字都放在一个`<div>`标签中,如下所示: ```html <div class="container"> <div class="item"> <img src="your-image-url1.jpg" alt="your-image1"> <p>your text here1</p> </div> <div class="item"> <img src="your-image-url2.jpg" alt="your-image2"> <p>your text here2</p> </div> <div class="item"> <img src="your-image-url3.jpg" alt="your-image3"> <p>your text here3</p> </div> </div> ``` 然后,使用CSS对每个容器设置`position: relative`,并对每个文字设置`position: absolute`,并设置`bottom: 0`,这样就可以将每个文字放在对应的图片下方了。 ```css .container { display: flex; justify-content: space-between; } .item { position: relative; flex-basis: 30%; } .item p { position: absolute; bottom: 0; width: 100%; } ``` 这里使用了`flex`布局来让每个容器之间有间隔,同时使用`flex-basis`来设置每个容器的宽度,可以根据需要进行调整。 完整的代码如下所示: ```html <div class="container"> <div class="item"> <img src="your-image-url1.jpg" alt="your-image1"> <p>your text here1</p> </div> <div class="item"> <img src="your-image-url2.jpg" alt="your-image2"> <p>your text here2</p> </div> <div class="item"> <img src="your-image-url3.jpg" alt="your-image3"> <p>your text here3</p> </div> </div> <style> .container { display: flex; justify-content: space-between; } .item { position: relative; flex-basis: 30%; } .item p { position: absolute; bottom: 0; width: 100%; } </style> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值