安全截断c#中可能为' null '的字符串

本文关键字:null 字符串 安全 | 更新日期: 2023-09-27 18:14:17

我有以下方法,但如果字符串为空,它会失败。如果字符串为空,我怎么能让它返回空呢?

public static string Truncate(this string value, int maxChars)
{
    return value.Length <= maxChars ?
           value :
           value.Substring(0, maxChars) + " ..";
}

谁能给我解释一下"这个"是干什么用的?对不起,我不太擅长c#,这不是我的代码。

安全截断c#中可能为' null '的字符串

通过检查null并适当返回:)

public static string Truncate(this string value, int maxChars)
{
    if (value == null)
    {
        return null;
    }
    return value.Length <= maxChars ?
           value : value.Substring(0, maxChars) + " ..";
}

或者你甚至可以使用另一个条件:

public static string Truncate(this string value, int maxChars)
{
    return value == null ? null
        : value.Length <= maxChars ? value 
        : value.Substring(0, maxChars) + " ..";
}

除了Jon Skeet的好答案之外,您还想知道this是用来做什么的。这使得该方法成为扩展方法用特定的函数扩展 string类的功能。this string value是Visual Studio的神奇之处,它为每个字符串变量在上下文菜单中显示该函数,并且编译器将该方法作为变量的第一个参数调用。函数必须是静态的

放置一个try catch块。如果触发,则返回null