小编Kil*_*aro的帖子

Int32.ToString()是否特定于文化?

我正在运行ReSharper的测试版,它给了我以下代码的警告:

int id;
// ...
DoSomethingWith(id.ToString());
Run Code Online (Sandbox Code Playgroud)

警告在id.ToString()通话中,它告诉我"明确指定字符串转换中的文化".我理解这个警告,而且我知道如何修复它 - 只需将代码更改为更加笨拙id.ToString(CultureInfo.InvariantCulture).

但我的问题是:这是必要的吗?我的意思是,显然,当您使用类型DateTime(不同的文化具有不同的日期格式)和Double(用于小数点的不同字符)时,指定文化很重要.但是Int32.ToString(),至少在en-US和invariant文化中,根本不添加任何格式.没有逗号,没有小数点,没有美元符号,没有.那么文化会有什么不同?

当您调用无参数时,是否有一些文化实际上会添加某种格式Int32.ToString()?或者这是ReSharper测试版中的错误,这个警告真的不适用Int32(在这种情况下我会提交ReSharper错误报告)?

.net c# resharper cultureinfo

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

为什么我需要使用get和set?

我有一个代码段:

public class MyClass
{
    private string _myProperty;

    public string MyProperty
    {
        get
        {
            return _myProperty;
        }

        set
        {
            _myProperty = value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这有什么意义?我可以将_myProperty字符串声明为public,并且我的任何类对象都可以直接访问它们并获取或设置值.

相反,我们_myProperty使用类对象使私有和使用get和set来访问它们.

在任何一种情况下,类对象都能够访问它们,结果总是相同的.

那么为什么要用这种方法?这只是因为我可以在setter中实现一些约束吗?

除此之外会对成员变量造成什么危害呢?在这个例子中,我可以公开_myProperty公开,而不是像OOP所暗示的那样将它限制在这个类中.

.net c# oop encapsulation

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

SQL Server"审核注销"操作需要很长时间.

我们有一个存储过程,全天有15个用户每天调用大约300,000次.我已经倾注了每一条线,它和我能得到的效率一样高.

存储过程通过4.0上的ASP.NET页面从基本Winterms上的旧版VB6应用程序访问.

当我查看SQL跟踪文件时,我看到以下内容:

  1. exec sp_reset_connection(使用连接池)
  2. 审核登录
  3. 执行存储过程
  4. 审核注销

我在第4步看到,读取和写入都很高,这是有道理的,因为它是在池中重用的连接的累积.

我关心的是需要多长时间,有时需要50ms,有时需要400ms,这完全是随机的.从文档中我读到"审核注销"是所有三个步骤的整个持续时间.但步骤1-3非常快,如0-5ms.为什么"审核注销"持续时间需要这么长时间?

asp.net-4.0 sql-server-2008-r2

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

ASP.NET中使用线程的多个并发Web服务请求

我需要同时向Web服务发出多个请求.我想为每个请求创建一个线程.可以在ASP.NET v3.5中完成吗?

例:

for(int i = 0; i<=10; i++)
{
   "Do each Request in a separate thread..."
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net multithreading web-services

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

在线程内部使用全局字典

假设我有一个Dictionary<string, string>.字典public static在我的控制台程序中声明.

如果我正在使用线程,我想从一个线程做到foreach这一点Dictionary但同时另一个线程想要将项添加到字典中.这会导致这里的错误,因为我们Dictionary在另一个线程中使用foreach循环运行它时无法修改它们.

为了绕过这个问题,我在字典上的每个操作上的同一个静态对象上创建了一个锁定语句.

这是绕过这个问题的最佳方法吗?我Dictionary可以非常大,我可以有很多线程想要在它上面.就目前而言,事情可能非常缓慢.

c# asp.net c#-4.0

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