我正在为C#中的String和DateTime实用程序函数编写扩展方法库。你可以通过建议你想要成为其中一部分的String和DateTime的有用的功能来帮助我吗?根据你的建议,我可以使它更具凝聚力和集体性。
谢谢!
答案 0 :(得分:8)
public static bool IsNullOrEmpty(this string value){
return string.IsNullOrEmpty(value);
}
public static string Reverse(this string value) {
if (!string.IsNullOrEmpty(value)) {
char[] chars = value.ToCharArray();
Array.Reverse(chars);
value = new string(chars);
}
return value;
}
public static string ToTitleCase(this string value) {
return CultureInfo.CurrentCulture.TextInfo.ToTitleCase(value);
}
public static string ToTitleCaseInvariant(this string value) {
return CultureInfo.InvariantCulture.TextInfo.ToTitleCase(value);
}
琐碎,但呼唤稍微好一些。
答案 1 :(得分:5)
那些没有专门扩展字符串或DateTime的方法,而是 target 或返回字符串或DateTime?然后你也可以构建一些int
和TimeSpan
方法,这样你就可以编写流畅的接口,如:
DateTime yesterday = 1.Days().Ago();
public static TimeSpan Days(this int value)
{
return new TimeSpan(value, 0, 0, 0);
}
public static TimeSpan Hours(this int value)
{
return new TimeSpan(value, 0, 0);
}
public static TimeSpan Minutes(this int value)
{
return new TimeSpan(0, value, 0);
}
//...
public static DateTime Ago(this TimeSpan value)
{
return DateTime.Now.Add(value.Negate());
}
public static DateTime FromNow(this TimeSpan value)
{
return DateTime.Now.Add(value);
}
答案 2 :(得分:4)
字符串扩展程序
MakeTitle
- 从TitleCase字符串创建标题,.i.e,将“FooBar”变为“Foo Bar”。我发现这对于打印枚举非常有用:fooEnum.ToString("g").MakeTitle()
Collapse
- 从两端修剪空白,并将所有内部空间折叠到一个空格。IsNothing
- 与IsNullOrEmpty类似,但首先修剪空白,对于您不希望只是空格的TextBox输入很有帮助,但如果没有输入则设置为null。DateTime Extensions
EndOfDay
- 将时间设定为给定日期的晚上11:59:59 StartOfDay
- 将时间设定为指定日期的凌晨00:00 答案 3 :(得分:1)
字符串扩展程序
static string ToCamelCase(this string s) {...} // Converts a string into Camel Notation, useful for code generation
static string ToPascalCase(this string s) {...} // Converts a string into Pascal Notation
static int [Soundex][1](this string s) {...} // Gets the soundex of a string
DateTime Extensions
static bool IsWithinRange(this DateTime d, DateTime start, DateTime end) {...}
static string [ToRelativeTime][2](this DateTime d) {...}