组件描述
该组件为Windows Phone 7 本身C#框架扩展了一系列方法,可以使你在编写代码的时候减少重复复制,并且增加了许多通用功能,使你的编写代码的时候可以更加流畅和得以应手。
扩展类别
该组件是将我们日常常用到的数据类型或者集合等操作再一次封装成易于使用的静态方法,分类为如下几大类:
- String 字符串扩展
- DateTime 日期扩展
- Guid 全局唯一标识符扩展
- IEnumerable 集合扩展
- Object 对象扩展
- Stream 流扩展
- Uri 统一资源标识符扩展
- Bool 真假“是否”扩展
- Int 整型扩展
扩展方法体
以下为每个静态类的扩展方法列表
StringExtensions
静态方法成员截图:

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
静态方法成员截图:

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(
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 代码 :
public
static
bool
IsGuidEmpty(
this
Guid self)
{
return
(self
==
Guid.Empty);
}
RemoveHyphen 代码:
public
static
string
RemoveHyphen(
this
Guid self)
{
return
self.ToString().Replace(
"
-
"
,
""
);
}
IEnumerableExtensions
静态方法成员截图:

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
静态方法成员截图:

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
静态方法成员列表截图:

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
静态方法成员列表截图:

Parameters 代码:
public
static
Dictionary
<
string
,
string
>
Parameters(
this
Uri self)
{
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 代码:
public
static
bool
IsFalse(
this
bool
self)
{
return
!
self;
}
IsTrue 代码:
public
static
bool
IsTrue(
this
bool
self)
{
return
self;
}
IntExtensions
静态方法成员列表截图:

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