标签: tryparse

TryParse为可空类型

我想尝试将a解析string为a DateTime?,如果失败则将值设置为null.我能想到的唯一方法就是如下,但它看起来并不是很整洁.

DateTime temp;
DateTime? whatIActuallyWant = null;
if (DateTime.TryParse(txtDate.Text, out temp)) whatIActuallyWant = temp;
Run Code Online (Sandbox Code Playgroud)

这是唯一的方法吗?

.net c# null nullable tryparse

14
推荐指数
2
解决办法
9651
查看次数

int.TryParse = null如果不是数字?

如果无法将字符串解析为int,是否有一些返回null的方法?

有:

public .... , string? categoryID) 
{
int.TryParse(categoryID, out categoryID);
Run Code Online (Sandbox Code Playgroud)

得到"无法从'输出字符串'转换为'输出int'

该怎么办?

编辑:

由于asp.net约束不再相关是解决问题的方法

/ M

.net c# tryparse

13
推荐指数
3
解决办法
5万
查看次数

TryCatch与TryParse的优缺点

使用以下任一方法从对象中拉出双精度的优缺点是什么?除了个人偏好之外,我正在寻找反馈的问题包括易于调试,性能,可维护性等.

public static double GetDouble(object input, double defaultVal)
{
    try
    {
        return Convert.ToDouble(input);
     }
     catch
     {
        return defaultVal;
     }
}

public static double GetDouble(object input, double defaultVal)
{
    double returnVal;
    if (double.TryParse(input.ToString(), out returnVal))
    {
        return returnVal;
    }
else
    {
        return defaultVal;
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# try-catch tryparse

11
推荐指数
1
解决办法
3987
查看次数

DateTime.TryParseExact未按预期工作

任何人都可以解释为什么以下片段返回true?

根据"d"自定义格式说明符的文档,"一位数字日的格式没有前导零." 那么为什么当我给一个前导零的一位数日时,TryParseExact不会失败?

DateTime x;
return DateTime.TryParseExact
(
    "01/01/2001",
    @"d\/MM\/yyyy",
    null,
    System.Globalization.DateTimeStyles.None,
    out x
);
Run Code Online (Sandbox Code Playgroud)

UPDATE

我想也许我原本不清楚.我真正想要的是:为什么TryParseExact接受一些不完全匹配的值?从我看到的所有文档中,'d'匹配'01'和'1'就像'MM'匹配'March'和'03'一样.这里的问题不是值是等价的,它们与格式不匹配.

相关的文档片段是:

  • 来自TryParseExact:字符串表示的格式必须与指定的格式完全匹配.

  • 来自'd'说明符:一位数字日的格式没有前导零.

我似乎非常清楚'01'有一个前导0,因此不完全匹配'd'.

c# datetime tryparse

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

在PowerShell中安全地将字符串转换为bool

我正在尝试将PowerShell脚本的参数转换为布尔值.这条线

[System.Convert]::ToBoolean($a)
Run Code Online (Sandbox Code Playgroud)

只要我使用诸如"true"或"false"的有效值,就可以正常工作,但是当传递无效值(例如"bla"或"")时,将返回错误.我需要类似于TryParse的东西,如果输入值无效则将值设置为false并返回指示转换成功或失败的布尔值.为了记录,我尝试了[boolean] :: TryParse和[bool] :: TryParse,PowerShell似乎没有认出它.

现在我不得不通过两个额外的if语句来笨拙地处理这个问题.

让我感到惊讶的是,到目前为止我发现的任何方法和博客文章都没有处理无效的值.我是否遗漏了一些东西,或者PowerShell孩子对于输入验证来说太酷了?

powershell boolean tryparse

11
推荐指数
3
解决办法
2万
查看次数

使用DateTime.TryParse方法检查有效日期

我正在使用Datetime.TryParse方法来检查有效的日期时间.输入日期字符串将是任何字符串数据.但是返回false作为指定日期无效.

DateTime fromDateValue;
if (DateTime.TryParse("15/07/2012", out fromDateValue))
{
    //do for valid date
}
else
{
    //do for in-valid date
}
Run Code Online (Sandbox Code Playgroud)

编辑:我错过了.我需要将有效日期和时间一起检查为"15/07/2012 12:00:00".

欢迎任何建议......

c# datetime tryparse

10
推荐指数
1
解决办法
4万
查看次数

格式化数字以在大于一千时显示逗号

我正在Visual Basic.net中编写一些代码并有一个问题.

如果我有一个长数,大于1000,我怎么能将这个值格式化为1,000(用逗号)并将其存储在字符串中?

例如

1234将被存储为1,234 12345将被存储为12,345 123456将被存储为123,456

这是用TryParse语句完成的吗?

我可以帮忙吗?

vb.net string tryparse number-formatting long-integer

10
推荐指数
1
解决办法
5万
查看次数

TryParse创建内联参数?

在C#中有什么方法可以创建内联变量吗?像这样的东西:

int x = int.TryParse("5", out new int intOutParameter) ? intOutParameter : 0;
Run Code Online (Sandbox Code Playgroud)

你不认为这比在外面创建变量更有用,然后再也不用它吗?

.net c# clr type-conversion tryparse

9
推荐指数
2
解决办法
5549
查看次数

TryParse() - 为什么这段代码返回0,结果不应为-1?

请参阅以下代码:

string test = "";
int output = -1;

if (int.TryParse(test, out output))
{
    Console.WriteLine("Parsed");
}

Console.WriteLine(output);
Run Code Online (Sandbox Code Playgroud)

TryParse()失败时,不应该跳过块,Console.WriteLine("Parsed")不调用和值output相同(-1)?

它正在回归 0

.net c# console tryparse

8
推荐指数
2
解决办法
1756
查看次数

判断double/float/int/short/byte的字符串是否超出范围

我有以下内容:

string outOfRange = "2147483648"; // +1 over int.MaxValue
Run Code Online (Sandbox Code Playgroud)

显然,如果你有一个数字以外的东西,这将失败:

var defaultValue = 0;
int.TryParse(outOfRange, out defaultValue);
Run Code Online (Sandbox Code Playgroud)

我的问题是,因为这是一个数字,并且它会失败,你int.TryParse()怎么知道它失败了,因为字符串超出了它存储在容器的范围内?

c# wpf int tryparse outofrangeexception

8
推荐指数
1
解决办法
4989
查看次数