组件描述
该组件为Windows Phone 7 本身C#框架扩展了一系列方法,可以使你在编写代码的时候减少重复复制,并且增加了许多通用功能,使你的编写代码的时候可以更加流畅和得以应手。
扩展类别
该组件是将我们日常常用到的数据类型或者集合等操作再一次封装成易于使用的静态方法,分类为如下几大类:
- String 字符串扩展
- DateTime 日期扩展
- Guid 全局唯一标识符扩展
- IEnumerable 集合扩展
- Object 对象扩展
- Stream 流扩展
- Uri 统一资源标识符扩展
- Bool 真假“是否”扩展
- Int 整型扩展
扩展方法体
以下为每个静态类的扩展方法列表
StringExtensions
静态方法成员截图:
Format 代码:
{
if (self == null )
{
throw new ArgumentNullException( " format " );
}
return string .Format(self, args);
}
HasValue 代码:
{
return ! string .IsNullOrEmpty(self);
}
IsNullOrEmpty代码:
{
return string .IsNullOrEmpty(self);
}
IsValidEmailAddress代码:
{
Regex regex = new Regex( @" ^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$ " );
return regex.IsMatch(self);
}
Split 代码:
{
return self.Split( new char [] { separator });
}
{
return self.Split( new string [] { separator }, StringSplitOptions.None);
}
ToInt 代码:
{
int num;
if ( ! int .TryParse(self, out num))
{
throw new InvalidOperationException( " Value is not valid. " );
}
return num;
}
Trim 代码:
{
return self.Trim( new char [] { character });
}
DateTimeExtensions
静态方法成员截图:
AddWeek 代码:
{
return dateTime.AddDays( 7.0 );
}
ToUnixTimestamp代码:
{
DateTime time = new DateTime( 0x7b2 , 1 , 1 , 0 , 0 , 0 );
TimeSpan span = (TimeSpan) (date - time);
return ( long ) span.TotalSeconds;
}
Tip:上面的time 是1/1/1970 12:00:00 AM
GuidExtensions
静态方法成员截图:
IsGuidEmpty 代码 :
{
return (self == Guid.Empty);
}
RemoveHyphen 代码:
{
return self.ToString().Replace( " - " , "" );
}
IEnumerableExtensions
静态方法成员截图:
ExistsIn<T> 代码:
{
return Enumerable.Contains < T > (collection, obj);
}
ForEach<T> 代码:
{
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 代码:
{
if ( ! obj.IsNull())
{
return (Enumerable.Count < T > (obj) == 0 );
}
return true ;
}
ToObservableCollection<T> 代码:
{
ObservableCollection < T > observables = new ObservableCollection < T > ();
source.ForEach < T > ( new Action < T > (observables.Add));
return observables;
}
ObjectExtensions
静态方法成员截图:
In 代码:
{
return (enumerable.IsNotNull() && Enumerable.Contains < object > (Enumerable.Cast < object > (enumerable), self));
}
IsNotNull 代码:
{
return (self != null );
}
IsNull 代码:
{
return (self == null );
}
NullTolerantEquals 代码:
{
if (self.IsNull() && obj.IsNotNull())
{
return false ;
}
if (self.IsNotNull() && obj.IsNull())
{
return false ;
}
return ((self.IsNull() && obj.IsNull()) || self.Equals(obj));
}
StreamExtensions
静态方法成员列表截图:
EqualsStream 代码:
{
return originalStream.EqualsStream(streamToCompareWith, Math.Max(originalStream.Length, streamToCompareWith.Length));
}
{
originalStream.Position = 0L ;
streamToCompareWith.Position = 0L ;
for ( int i = 0 ; i < readLength; i ++ )
{
if (originalStream.ReadByte() != streamToCompareWith.ReadByte())
{
return false ;
}
}
return true ;
}
ReadAllText 代码:
{
using (StreamReader reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
}
ToByteArray 代码:
{
MemoryStream writeStream = new MemoryStream();
StreamHelper.CopyStream(stream, writeStream, true );
return writeStream.ToArray();
}
UriExtensions
静态方法成员列表截图:
Parameters 代码:
{
if (self.IsNull())
{
throw new ArgumentException( " Uri can't be null. " );
}
if ( string .IsNullOrEmpty(self.Query))
{
return new Dictionary < string , string > ();
}
if (CS$ <> 9__CachedAnonymousMethodDelegate2 == null )
{
CS$ <> 9__CachedAnonymousMethodDelegate2 = new Func < string , string > ( null , (IntPtr) < Parameters > b__0);
}
if (CS$ <> 9__CachedAnonymousMethodDelegate3 == null )
{
CS$ <> 9__CachedAnonymousMethodDelegate3 = new Func < string , string > ( null , (IntPtr) < Parameters > b__1);
}
return Enumerable.ToDictionary < string , string , string > (self.Query.Substring( 1 ).Split( new char [] { ' & ' }), CS$ <> 9__CachedAnonymousMethodDelegate2, CS$ <> 9__CachedAnonymousMethodDelegate3);
}
BoolExtensions
静态方法成员列表截图:
IsFalse 代码:
{
return ! self;
}
IsTrue 代码:
{
return self;
}
IntExtensions
静态方法成员列表截图:
IsWithin 代码:
{
if (minimum > maximum)
{
throw new ArgumentException( " minimum must be of less value than maximum. " );
}
return ((self >= minimum) && (self <= maximum));
}
组件下载:Extension
转载于:https://blog.51cto.com/terryblog/502437