gpt4 book ai didi

c# - VB6 在 C# 中的私有(private)静态?

转载 作者:搜寻专家 更新时间:2023-10-31 19:58:50 24 4
gpt4 key购买 nike

在 VB6 中,有局部静态变量在过程退出后保持其值。这就像使用公共(public)变量,但在本地 block 上。例如:

sub count()
static x as integer
x = x + 1
end sub

调用 10 次后,x 将为 10。我试图在 .NET(甚至 Java)中搜索相同的内容,但没有找到。为什么?它是否以某种方式破坏了 OOP 模型,是否有一种方法可以模拟它。

最佳答案

最接近的是方法外部的静态字段:

private static int x;
public [static] void Foo() {
x++;
}

要求的闭包示例:

using System;
class Program {
private static readonly Action incrementCount;
private static readonly Func<int> getCount;
static Program() {
int x = 0;
incrementCount = () => x++;
getCount = () => x;
}
public void Foo() {
incrementCount();
incrementCount();
Console.WriteLine(getCount());
}
static void Main() {
// show it working from an instance
new Program().Foo();
}
}

关于c# - VB6 在 C# 中的私有(private)静态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2748018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com