Tag: static

C#自动实现的静态属性是否是线程安全的?

我想知道C#是否自动实现了属性,比如public static T Prop { get; set; } public static T Prop { get; set; } ,是否是线程安全的。 谢谢!

静态变量实例和AppDomains,发生了什么?

我有 public static class A { public static string ConnString; } [Serializable] public class Test{ // Accesing A’s field; public string ConnString{get{return A.ConnString;}set{A.ConnString=value;}} } void Main() { A.ConnString = “InitialString”; // I set A.ConnString in the current domain var newDomain = AppDomain.CreateDomain(“DomNew”); Test TObj = newDomain.CreateInstanceAndUnwrap(typeof(Test).Assembly.FullName, typeof(Test).FullName) as Test ; TObj.ConnString = “NewDomainString”; // It […]

为什么静态字段初始化发生在静态构造函数之前?

以下代码: static void Main(string[] args) { Console.WriteLine(“0”); string h = Foo.X; Console.WriteLine(“2”); } public static class Foo { public static string X = ((Func)delegate(string g) { Console.WriteLine(g); return (g); })(“_aaa”); static Foo() { Console.WriteLine(“ctor”); } } 将打印: 0 _aaa ctor 2 我知道beforefieldinit行为(有/没有静态构造函数等)。 我不明白的是为什么ctor (在输出中)是在 _aaa 之后 ? 它没有任何意义,如果我想在构造函数中初始化变量怎么办? 题 为什么X的初始化在ctor之前?

是否可以通过静态方法访问实例变量?

在C#中,是否可以通过不同类中的静态方法访问实例变量而无需使用参数传递? 在我们的项目中,我有一个Data access layer类,它有很多静态方法。 在这些方法中, SqlCommand超时值已经过硬编码。 在我们框架中的另一个类( Dac )中,有许多实例方法调用这些静态方法。 我不想使用参数传递来编写太多代码。 您是否有比参数传递更容易的其他解决方案?

HttpContext.Current如何在multithreading环境中工作?

所以我想知道asp.net是如何确定范围静态属性的,当(据我所知)asp.net是multithreading的。 一种理论认为,ASP.NET人员为每个请求维护一个不同的appdomain …但这似乎不可行。 另一种理论认为.Current方法查看当前的Thread,然后使用它来查找某些哈希表(或其他静态存储机制)中的http上下文。 无论哪种方式,这是一种看似非常有用的技术……我想利用它,但绝对不想调试共享状态错误: – /

C# – 静态类型不能用作类型参数

我有一个generics类,可以帮助我对参数值进行检查 internal sealed class Argument where T : class { private void TraceAndThrow(Exception ex) { new InternalTraceHelper().WriteError(ex); throw ex; } internal void ThrowNull(object value, string argName) { if (ReferenceEquals(value, null)) { TraceAndThrow(new ArgumentNullException(argName)); } } internal void ThrowIf(bool condition, string argName) { if (condition) { TraceAndThrow(new ArgumentException(null, argName)); } } internal void ThrowNotInEnum(Type enumType, object […]

什么时候静态变量在C#中初始化?

我想知道静态变量(在一个类中)何时进入图像(初始化)? 它是在第一次调用实例构造函数之后还是在类加载之后? 什么时候加载类?