【WP7进阶】——扩展框架组件

组件描述

    该组件为Windows Phone 7 本身C#框架扩展了一系列方法,可以使你在编写代码的时候减少重复复制,并且增加了许多通用功能,使你的编写代码的时候可以更加流畅和得以应手。

 

扩展类别

该组件是将我们日常常用到的数据类型或者集合等操作再一次封装成易于使用的静态方法,分类为如下几大类:

  • String 字符串扩展
  • DateTime 日期扩展
  • Guid 全局唯一标识符扩展
  • IEnumerable 集合扩展
  • Object 对象扩展
  • Stream 流扩展
  • Uri  统一资源标识符扩展
  • Bool  真假“是否”扩展
  • Int  整型扩展

扩展方法体

以下为每个静态类的扩展方法列表

StringExtensions

静态方法成员截图:

【WP7进阶】——扩展框架组件

Format 代码:

 

public static string Format(this string self, params object[] args)
{
    
if (self == null)
    {
        
throw new ArgumentNullException("format");
    }
    
return string.Format(self, args);
}

 

 

 

HasValue 代码:

 

public static bool HasValue(this string self)
{
    
return !string.IsNullOrEmpty(self);
}

 

 

IsNullOrEmpty代码:

public static bool IsNullOrEmpty(this string self)
{
    
return string.IsNullOrEmpty(self);
}

 

IsValidEmailAddress代码:

public static bool IsValidEmailAddress(this string self)
{
    Regex regex 
= new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$");
    
return regex.IsMatch(self);
}

 

Split 代码:

 

public static IEnumerable<string> Split(this string self, char separator)
{
    
return self.Split(new char[] { separator });

 

}

 

 

 

public static IEnumerable<string> Split(this string self, string separator)
{
    
return self.Split(new string[] { separator }, StringSplitOptions.None);
}

 

 

ToInt 代码:

 

public static int ToInt(this string self)
{
    
int num;
    
if (!int.TryParse(self, out num))
    {
        
throw new InvalidOperationException("Value is not valid.");
    }
    
return num;
}

 

 

 

Trim 代码:

public static string Trim(this string self, char character)
{
    
return self.Trim(new char[] { character });
}

 

 

DateTimeExtensions

静态方法成员截图:

【WP7进阶】——扩展框架组件

AddWeek 代码:

public static DateTime AddWeek(this DateTime dateTime)
{
    
return dateTime.AddDays(7.0);
}

 

ToUnixTimestamp代码:

public static long ToUnixTimestamp(this DateTime date)
{
    DateTime time 
= new DateTime(0x7b211000);
    TimeSpan span 
= (TimeSpan) (date - time);
    
return (long) span.TotalSeconds;
}

 

Tip:上面的time 是1/1/1970 12:00:00 AM
 

GuidExtensions

静态方法成员截图:

【WP7进阶】——扩展框架组件

IsGuidEmpty 代码 :

public static bool IsGuidEmpty(this Guid self)
{
    
return (self == Guid.Empty);
}

 

RemoveHyphen 代码:

 

public static string RemoveHyphen(this Guid self)
{
    
return self.ToString().Replace("-""");
}

 

 

IEnumerableExtensions

静态方法成员截图:

【WP7进阶】——扩展框架组件

ExistsIn<T> 代码:

public static bool ExistsIn<T>(this T obj, IEnumerable<T> collection)
{
    
return Enumerable.Contains<T>(collection, obj);
}

 

 

ForEach<T> 代码:

public static void ForEach<T>(this IEnumerable<T> sequence, Action<T> action)
{
    
if (sequence == null)
    {
        
throw new ArgumentNullException("The secuence is null!");
    }
    
if (action == null)
    {
        
throw new ArgumentNullException("The action is null!");
    }
    
foreach (T local in sequence)
    {
        action(local);
    }
}

 

 

IsNullOrEmpty 代码:

public static bool IsNullOrEmpty<T>(this IEnumerable<T> obj)
{
    
if (!obj.IsNull())
    {
        
return (Enumerable.Count<T>(obj) == 0);
    }
    
return true;
}

ToObservableCollection<T> 代码:

public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> source)
{
    ObservableCollection
<T> observables = new ObservableCollection<T>();
    source.ForEach
<T>(new Action<T>(observables.Add));
    
return observables;
}

 

ObjectExtensions

静态方法成员截图:

【WP7进阶】——扩展框架组件

In 代码:

 

public static bool In(this object self, IEnumerable enumerable)
{
    
return (enumerable.IsNotNull() && Enumerable.Contains<object>(Enumerable.Cast<object>(enumerable), self));
}

 

 

IsNotNull 代码:

 

public static bool IsNotNull(this object self)
{
    
return (self != null);
}

 

 

IsNull 代码:

 

public static bool IsNull(this object self)
{
    
return (self == null);
}

 

NullTolerantEquals 代码:

 

public static bool NullTolerantEquals(this object self, object obj)
{
    
if (self.IsNull() && obj.IsNotNull())
    {
        
return false;
    }
    
if (self.IsNotNull() && obj.IsNull())
    {
        
return false;
    }
    
return ((self.IsNull() && obj.IsNull()) || self.Equals(obj));
}

 

 

StreamExtensions

静态方法成员列表截图:

【WP7进阶】——扩展框架组件

EqualsStream 代码:

 

public static bool EqualsStream(this Stream originalStream, Stream streamToCompareWith)
{
    
return originalStream.EqualsStream(streamToCompareWith, Math.Max(originalStream.Length, streamToCompareWith.Length));
}

 

 

 

public static bool EqualsStream(this Stream originalStream, Stream streamToCompareWith, long readLength)
{
    originalStream.Position 
= 0L;
    streamToCompareWith.Position 
= 0L;
    
for (int i = 0; i < readLength; i++)
    {
        
if (originalStream.ReadByte() != streamToCompareWith.ReadByte())
        {
            
return false;
        }
    }
    
return true;
}

 

 

ReadAllText 代码:

 

public static string ReadAllText(this Stream stream)
{
    
using (StreamReader reader = new StreamReader(stream))
    {
        
return reader.ReadToEnd();
    }
}

 

 

ToByteArray 代码:

 

public static byte[] ToByteArray(this Stream stream)
{
    MemoryStream writeStream 
= new MemoryStream();
    StreamHelper.CopyStream(stream, writeStream, 
true);
    
return writeStream.ToArray();
}

 

 

UriExtensions

静态方法成员列表截图:

【WP7进阶】——扩展框架组件

Parameters 代码:

 

public static Dictionary<stringstring> Parameters(this Uri self)
{
    
if (self.IsNull())
    {
        
throw new ArgumentException("Uri can't be null.");
    }
    
if (string.IsNullOrEmpty(self.Query))
    {
        
return new Dictionary<stringstring>();
    }
    
if (CS$<>9__CachedAnonymousMethodDelegate2 == null)
    {
        CS$
<>9__CachedAnonymousMethodDelegate2 = new Func<stringstring>(null, (IntPtr) <Parameters>b__0);
    }
    
if (CS$<>9__CachedAnonymousMethodDelegate3 == null)
    {
        CS$
<>9__CachedAnonymousMethodDelegate3 = new Func<stringstring>(null, (IntPtr) <Parameters>b__1);
    }
    
return Enumerable.ToDictionary<stringstringstring>(self.Query.Substring(1).Split(new char[] { '&' }), CS$<>9__CachedAnonymousMethodDelegate2, CS$<>9__CachedAnonymousMethodDelegate3);
}

 

 

BoolExtensions

静态方法成员列表截图:

【WP7进阶】——扩展框架组件

IsFalse 代码:

 

public static bool IsFalse(this bool self)
{
    
return !self;
}

 

 

IsTrue 代码:

 

public static bool IsTrue(this bool self)
{
    
return self;
}

 

 

IntExtensions

静态方法成员列表截图:

 【WP7进阶】——扩展框架组件

 

IsWithin 代码:

 

public static bool IsWithin(this int self, int minimum, int maximum)
{
    
if (minimum > maximum)
    {
        
throw new ArgumentException("minimum must be of less value than maximum.");
    }
    
return ((self >= minimum) && (self <= maximum));
}

 

 

 

组件下载:Extension



 本文转自 terry_龙 51CTO博客,原文链接:http://blog.51cto.com/terryblog/502437,如需转载请自行联系原作者

上一篇:世界备份日,您的数据足够安全吗?


下一篇:Charted – 自动化的可视化数据生成工具