Tag: static members

C# – 参数在静态方法中是否安全?

这个方法是线程安全的吗? 好像它不是…… public static void Foo(string _str, Guid _id) { _str = _str + _id.ToString(); /* Do Stuff */ return }

静态事件如何与C#中的非静态事件进行比较?

我刚刚意识到静态事件的存在 – 我很好奇人们如何使用它们。 我想知道相对比较如何与静态与实例方法保持一致。 例如,静态方法基本上是一个全局函数。 但我总是将事件与对象实例联系起来,而我在全球范围内无法思考它们。 这里有一些代码可以参考它是否有助于解释: void Main() { var c1 = new C1(); c1.E1 += () => Console.WriteLine (“E1”); C1.E2 += () => Console.WriteLine (“E2”); c1.F1(); } // <>+D() public delegate void D(); // +<>E1 // +<><>E2 // +F() // <> // <>E1 // <>E2 public class C1 { public void F1() { […]

使用静态方法和变量 – 好与坏

我正在开发C#和asp.net Web应用程序。 我有一个名为utilities的通用类,我在这个公共实用程序类中有很多公共和静态变量。 由于这个数字逐渐增加,我想知道将实用程序方法和变量存储为公共静态是一种好的做法。 我的代码示例 public class utilities { public static string utilVariable1 = “Myvalue”; public static string utilVariable2 = “Myvalue”; public static string utilVariable3 = “Myvalue”; : public static string utilVariableN = “Myvalue”; public static string UtilMethod1() { //do something } public static string UtilMethod2() { //do something } public static string UtilMethodN() { […]

静态字段与会话变量

到目前为止,我一直在使用Session将一些变量从一个页面传递到另一个页面。 例如用户角色。 当用户登录到Web应用程序时,用户的角色ID保留在Session中,并且在应用程序的不同部分检查该角色。 我最近开始考虑为什么不使用静态成员。 我可以在静态字段中存储相同的信息,并在我的应用程序的任何地方轻松访问它(包括静态字段所在的命名空间的任何位置。)我知道使用Session变量有时会派上用场,这样: 任何类型的数据都可以存储在Session中。 然而,它必须被转换。但静态字段仅接受具有正确数据类型的数据。 会话变量将在一段时间后过期,这是我们在许多情况下需要的行为。 除了上述之外,还有其他原因我不应该使用静态字段来存储数据并让它随处可用吗?

C#静态变量 – 范围和持久性

我做了一个小实验: public abstract class MyClass { private static int myInt = 0; public static int Foo() { return myInt; } public static int Foo(int n) { myInt = n; return bar(); } private static int bar() { return myInt; } } 然后我跑了: MessageBox.Show(MyClass.Foo().ToString()); MessageBox.Show(MyClass.Foo(3).ToString()); MessageBox.Show(MyClass.Foo().ToString()); MessageBox.Show(MyClass.Foo(10).ToString()); MessageBox.Show(MyClass.Foo().ToString()); 我预期的结果是0,3,0,10,0。 令我惊讶的是,我得到了0,3,3,10,10。 这些变化持续多久? 程序执行的持续时间? 调用静态方法的函数的持续时间?