?
?組件描述
??? 該組件為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