相关疑难解决方法(0)

将字符串转换为可空类型(int,double等...)

我正在尝试进行一些数据转换.不幸的是,大部分数据都是字符串,它应该是int或double等等......

所以我得到的是:

double? amount = Convert.ToDouble(strAmount);
Run Code Online (Sandbox Code Playgroud)

这种方法的问题是如果strAmount是空的,如果它是空的我希望它等于null,所以当我将它添加到数据库时,该列将为null.所以我最后写了这个:

double? amount = null;
if(strAmount.Trim().Length>0)
{
    amount = Convert.ToDouble(strAmount);
}
Run Code Online (Sandbox Code Playgroud)

现在这个工作正常,但我现在有五行代码而不是一行代码.这使得事情变得更难以阅读,特别是当我有大量的列要转换时.

我以为我会使用字符串类和泛型的扩展来传入类型,这是因为它可能是double,或int或long.所以我尝试了这个:

public static class GenericExtension
{
    public static Nullable<T> ConvertToNullable<T>(this string s, T type) where T: struct
    {
        if (s.Trim().Length > 0)
        {
            return (Nullable<T>)s;
        }
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

但我收到错误:无法将类型'string'转换为'T?'

有没有解决的办法?我不太熟悉使用泛型创建方法.

.net c# generics extension-methods type-conversion

135
推荐指数
8
解决办法
12万
查看次数

如何使用int.TryParse与nullable int?

我试图使用TryParse来查找字符串值是否为整数.如果该值是整数,则跳过foreach循环.这是我的代码.

string strValue = "42 "

 if (int.TryParse(trim(strValue) , intVal)) == false
 {
    break;
 }
Run Code Online (Sandbox Code Playgroud)

intVal是int类型的变量(可空INT).如何将tryparse与nullable int一起使用?

c#

90
推荐指数
5
解决办法
7万
查看次数

TryParse没有var param

C#6.0中的新功能允许在TryParse方法中声明变量.我有一些代码:

string s = "Hello";

if (int.TryParse(s, out var result))
{

}
Run Code Online (Sandbox Code Playgroud)

但我收到编译错误: 在此输入图像描述

我做错了什么?PS:在项目设置中设置C#6.0和.NET framework 4.6.

c# c#-6.0 c#-7.0

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

可空类型"int"的默认值是多少?(包括问号)?

在C#中,类型实例变量的默认值是int?什么?

例如,在以下代码中,MyNullableInt如果从未明确分配,将具有什么值?

class MyClass
{
    public int? MyNullableInt;
}
Run Code Online (Sandbox Code Playgroud)

(似乎答案几乎肯定是null或者0,但是那些是什么?)

c# integer nullable

89
推荐指数
2
解决办法
6万
查看次数

在MVC3中下载Azure Blob文件

我们的ASP.NET MVC 3应用程序在Azure上运行,并使用Blob作为文件存储.我找到了上传部分.

视图将具有文件名,单击该文件名时将提示文件下载屏幕出现.

谁能告诉我怎么做呢?

asp.net-mvc azure azure-storage azure-storage-blobs asp.net-mvc-3

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

int.Parse,输入字符串格式不正确

我该如何解析一个空字符串?int.Parse(Textbox1.text)给我一个错误:

输入字符串的格式不正确.
System.FormatException:输入字符串的格式不正确.

如果文本为空(Textbox1.text = ''),则会抛出此错误.我理解这个错误,但不知道如何纠正这个.

c#

19
推荐指数
5
解决办法
6万
查看次数

使用int.TryParse和nullable int

我如何使用int.TryParsenullable int?

我试图做类似下面的事情,显然不能编译.

int? nr1 = int.TryParse(str1, out nr1) ? nr1 : null;

实现它的正确方法是什么?

c#

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