小编Gre*_*reg的帖子

抛出异常与使用switch语句返回null值

所以我有一个函数格式化一个日期来强制给定枚举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)

java return-value

18
推荐指数
2
解决办法
1万
查看次数

where子句中的SQL和NULL值

所以我有一个简单的查询返回产品列表

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

sql sql-server null sql-server-2008

9
推荐指数
1
解决办法
3万
查看次数

改进字符串化方法

可能重复:
在C#中转换字符串

我想"camelize"一个字符串,例如:

  • 零件/附件 - >零件/配件
  • HELLO WORLD/TEST - > Hello World/Test
  • Hello World - > Hello World

这是我到目前为止所拥有的:

  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)

c#

3
推荐指数
1
解决办法
1272
查看次数

标签 统计

c# ×1

java ×1

null ×1

return-value ×1

sql ×1

sql-server ×1

sql-server-2008 ×1