所以我有一个函数格式化一个日期来强制给定枚举DateType {CURRENT,START,END}什么是处理返回值的最佳方法与使用switch语句的情况
public static String format(Date date, DateType datetype) {
..validation checks
switch(datetype){
case CURRENT:{
return getFormattedDate(date, "yyyy-MM-dd hh:mm:ss");
}
...
default:throw new ("Something strange happend");
}
}
Run Code Online (Sandbox Code Playgroud)
或者在最后抛出激动
public static String format(Date date, DateType datetype) {
..validation checks
switch(datetype){
case CURRENT:{
return getFormattedDate(date, "yyyy-MM-dd hh:mm:ss");
}
...
}
//It will never reach here, just to make compiler happy
throw new IllegalArgumentException("Something strange happend");
}
Run Code Online (Sandbox Code Playgroud)
或者返回null
public static String format(Date date, DateType datetype) {
..validation checks
switch(datetype){
case CURRENT:{
return …
Run Code Online (Sandbox Code Playgroud) 所以我有一个简单的查询返回产品列表
SELECT Model, CategoryID
FROM Products
WHERE (Model = '010-00749-01')
Run Code Online (Sandbox Code Playgroud)
这回来了
010-00749-01 00000000-0000-0000-0000-000000000000
010-00749-01 NULL
Run Code Online (Sandbox Code Playgroud)
这是正确的,所以我只想要那些CategoryID不是'00000000-0000-0000-0000-000000000000'的产品,所以我有
SELECT Model, CategoryID
FROM Products
WHERE (Model = '010-00749-01')
AND (CategoryID <> '00000000-0000-0000-0000-000000000000')
Run Code Online (Sandbox Code Playgroud)
但这没有结果.所以我将查询更改为
SELECT Model, CategoryID
FROM Products
WHERE (Model = '010-00749-01')
AND ((CategoryID <> '00000000-0000-0000-0000-000000000000') OR (CategoryID IS NULL))
Run Code Online (Sandbox Code Playgroud)
哪个返回预期结果
010-00749-01 NULL
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释这种行为吗?MS SQL Server 2008
可能重复:
在C#中转换字符串
我想"camelize"一个字符串,例如:
这是我到目前为止所拥有的:
public static string Camelize(this string str)
{
if (String.IsNullOrEmpty(str)) return "";
var sb = new StringBuilder();
char[] chars = str.ToLower().ToCharArray();
bool upper = true;
// ' ', '-', '.', '/'
for (int i = 0; i < chars.Length; ++i)
{
char c = chars[i];
if (i == 0 || //First char
chars[i - 1] == ' ' ||
chars[i - 1] …
Run Code Online (Sandbox Code Playgroud)