c# 静态变量,静态成员与非静态变量,非静态成员问题。

publicpartialclassForm1:Form{privatestaticinti=0;privatestaticBitmapbitImg=null;priva... public partial class Form1 : Form
{
private static int i = 0;
private static Bitmap bitImg = null;
private static string imgPath = @"C:\CutScreen.png";
private static string txtPath = @"C:\CutScreenText.txt";
public Form1(){
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e){ // }
}
这是WinForm中的代码,如果我的对象bitImg,变量i 只是在本类中的方法或button事件中使用,需不需要定义为静态的? 我试了下静态不静态都能用,哪个好呢?为什么?谢谢各位大虾!3q~~
展开
 我来答
freeeeeewind
2014-04-09 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1364万
展开全部

类中定义的静态变量,是属于类而不属于实例的(称为类变量)。类变量的特点是:不用实例化类就可以用。例如:

public class myClass
{    
    public static int Max;  //类变量
    public int Value;   //实例变量
    ……
}

类变量不需要实例化类就可以直接使用:

myClass.Max = 200;   //不用实例化myClass就可以用类中的静态变量Max

而变量Value是实例变量,与Max不同,必须实例化myClass后,才能使用变量Value

myClass o = new myClass();  //实例化
o.Value = 200;  //通过实例,使用变量Value

在你的问题中,在类Form1中的静态变量:

private static int i = 0;

private static Bitmap bitImg = null;
private static string imgPath = @"C:\CutScreen.png";
private static string txtPath = @"C:\CutScreenText.txt";

同样是属于类变量,只是被private限制在类中使用。

至于哪个好呢?很难说类变量好还是实例变量好。只要你明白类变量和实例变量差别,就可以根据它们的特点来使用。O(∩_∩)O~ 

Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
Lastoco
2014-04-09 · TA获得超过121个赞
知道小有建树答主
回答量:312
采纳率:100%
帮助的人:223万
展开全部
看情况了,
如果是单纯的为了在全局用的话不需要。
如果是在很多的类或者窗体中需要用到的话就需要了。

静态的概念就是:程序运行后一直存在于内存中。
非静态的概念就是:运行后需要用到就分配内存,不需要就不分配
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuanxun0403
2014-04-09 · TA获得超过101个赞
知道小有建树答主
回答量:279
采纳率:100%
帮助的人:122万
展开全部
就你的问题来回答:
如果你就在方法内部使用,bitimg 和 i 放在方法中,并且不用静态的是最好的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式