设为首页 - 加入收藏
广告 1000x90
您的当前位置:144177黄大仙有求必应 > 静态函数 > 正文

在C中静态函数和实例函数的区别?

来源:未知 编辑:admin 时间:2019-06-26

  静态变量 静态对象 静态函数和非静态函数的区别。(我的理解,大家看看对不对)先明确一下语言:C#

  1、静态变量。在内存里是应该只有一份,不管是不是多线程,是不是多用户同时访问,静态变量只占用一份内存。

  个人认为 SqlConnection 是不应该只用静态的,除非你的网站没有(或很少)并发访问的情况。

  否则就很容易出现千军万马过独木桥的现象。挤不过去了就会瘫痪的。而且连接池也就无用武之地了。

  类的属性、函数的参数、返回值,这些应该是在实例化的时候产生一份,供调用者单独使用,其他的调用者是绝对访问不了的。

  当然函数内定义的变量、对象也应该是独立的(多份),有一个调用的就产生一份。

  小结静态函数和非静态函数最大的区别是,静态的不能访问所在类的属性和内的私有变量,其他的好像都一样了。

  再有就是在调用的时候会不会“复制”一遍算法(函数本身)?(我感觉是都不会复制的)。

  两者需要的参数,返回值应该是独立的,一个调用者一份,一个调用者不会访问到其它调用者的参数和返回值。

  静态构造函数是最早被调用的,只要有静态访问,那么就先调用静态构造函数。其他非静态构造函数会在调用完毕静态的成员之后才被调用。

  所以一般静态构造函数用来为静态成员初始化,或者作为单件模式中创建对象的唯一入口。

  在访问类的静态成员的时候,系统会最先调用静态构造函数static GoodsManager(),在构造函数中初始化了静态变量。

  静态变量 静态对象 静态函数和非静态函数的区别。(我的理解,大家看看对不对)先明确一下语言:C# 1、静态变量: static string str1 = 1234; 2、静态对象 static SqlConnection cn = new SqlConnection(); 3、静态函数class aa{public static string test(string str){return str & 111;}}调用aa.test(123); 4、非静态函数(就是需要实例化的)class aa{public string test(string str){return str & 111;}}调用aa a1 = new aa(); a1.test(123); 1、静态变量。在内存里是应该只有一份,不管是不是多线程,是不是多用户同时访问,静态变量只占用一份内存。 2、静态对象和静态变量也差不多,只有一份。 个人认为 SqlConnection 是不应该只用静态的,除非你的网站没有(或很少)并发访问的情况。 否则就很容易出现千军万马过独木桥的现象。挤不过去了就会瘫痪的。而且连接池也就无用武之地了。 3、非静态函数,就是在调用的时候必须先实例化,然后才能访问到。 类的属性、函数的参数、返回值,这些应该是在实例化的时候产生一份,供调用者单独使用,其他的调用者是绝对访问不了的。 那么函数(或者说是类)呢?也又生成了一份吗?还没有弄清楚。 4、静态函数,直接调用不需要实例化,也没有“属性” 当然函数内定义的变量、对象也应该是独立的(多份),有一个调用的就产生一份。 小结静态函数和非静态函数最大的区别是,静态的不能访问所在类的属性和内的私有变量,其他的好像都一样了。 再有就是在调用的时候会不会“复制”一遍算法(函数本身)?(我感觉是都不会复制的)。 两者需要的参数,返回值应该是独立的,一个调用者一份,一个调用者不会访问到其它调用者的参数和返回值。 不知道我的看法对不对,请大家检查一下。

本文链接:http://that-a-way.com/jingtaihanshu/268.html

相关推荐:

网友评论:

栏目分类

现金彩票 联系QQ:24498872301 邮箱:24498872301@qq.com

Copyright © 2002-2011 DEDECMS. 现金彩票 版权所有 Power by DedeCms

Top