C#中为啥不能在函数里设置静态变量?

在VB中可以在过程中设置静态变量,如PrivateSubCommand1_Click()staticaasintegerEndSub单在C#中不可以,internalcl... 在VB中可以在过程中设置静态变量,如
Private Sub Command1_Click()
static a as integer
End Sub
单在C#中不可以,
internal class aa {

internal void ass(){
static int a;
Console.WriteLine();
}
修饰符 static 对该项无效,为啥?
展开
 我来答 举报
a5202003
推荐于2017-11-24 · TA获得超过2249个赞
知道大有可为答主
回答量:1885
采纳率:75%
帮助的人:595万
展开全部
因为机制的关系。
其实C#这个可以理解为是替代C++中宏的东西,那么定义宏当然不能在函数里定义了。
VB我不是很清楚,但是c#的静态变量是在对象生成的时候分配内存空间的,而不是函数执行的时候。如果你在函数里定义,那么这个变量就需要在函数执行的时候分配内存空间,这是C#不允许的,至于为什么不允许,个人看法可能是因为垃圾回收机制的问题。
知道高高手无敌
高粉答主

推荐于2018-05-10 · 每个回答都超有意思的
知道大有可为答主
回答量:1.5万
采纳率:6%
帮助的人:1831万
展开全部
因为机制的关系,其实C#这个可以理解为是替代C++中宏的东西,那么定义宏当然不能在函数里定义了。
c#的静态变量是在对象生成的时候分配内存空间的,而不是函数执行的时候。如果在函数里定义,那么这个变量就需要在函数执行的时候分配内存空间,这是C#不允许的,至于为什么不允许,个是因为垃圾回收机制的问题。
本回答被网友采纳
2 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
Contenfire
2011-11-18
知道答主
回答量:7
采纳率:0%
帮助的人:7547
展开全部
C#中,静态变量是类变量,只能在类中定义。
类变量在类定义的时候就创建了,不需要实例化。
你给出的函数是在实例化的函数。在实例化的函数中不能定义类变量。
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
无里去
2011-11-17 · 超过38用户采纳过TA的回答
知道答主
回答量:206
采纳率:0%
帮助的人:125万
展开全部
静态变量的所有者是类,
 Command1_Click()方法的所有者是类的实例化对像
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
li312251474
2011-11-18
知道答主
回答量:3
采纳率:0%
帮助的人:5008
展开全部
只有在静态类中才能用静态方法
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式