惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
D
Docker
Blog — PlanetScale
Blog — PlanetScale
罗磊的独立博客
美团技术团队
V
V2EX
Last Week in AI
Last Week in AI
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
宝玉的分享
宝玉的分享
Microsoft Security Blog
Microsoft Security Blog
Microsoft Azure Blog
Microsoft Azure Blog
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
P
Proofpoint News Feed
B
Blog RSS Feed
博客园_首页
B
Blog
博客园 - 叶小钗
I
InfoQ
WordPress大学
WordPress大学
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
A
About on SuperTechFans
The GitHub Blog
The GitHub Blog
The Register - Security
The Register - Security
MyScale Blog
MyScale Blog
云风的 BLOG
云风的 BLOG
博客园 - 司徒正美
Latest news
Latest news
W
WeLiveSecurity
T
The Exploit Database - CXSecurity.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
Cyberwarzone
Cyberwarzone
Scott Helme
Scott Helme
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CERT Recently Published Vulnerability Notes
C
CXSECURITY Database RSS Feed - CXSecurity.com
Recent Commits to openclaw:main
Recent Commits to openclaw:main
N
News and Events Feed by Topic
S
Secure Thoughts
The Hacker News
The Hacker News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News

博客园 - kwame

CXX0017错误的解决办法 基础知识--is & as 的区别 - kwame 基础知识--变量和常量 - kwame - 博客园 基础知识--Boxing & unBoxing 用Visual C#创建Windows服务程序 (转)用C语言编写Windows服务程序的五个步骤 昨天的事今天来写也叫昨天的日记吧?? 我是个被窥视狂? 一个馒头和一个*六*合*彩*网站引发的血案 *六*合*彩*网站也能做成这样不容易呀! 取得一段汉语的每个字的首字母 写入、读取 cookie 无聊顺便复习了下前面学的东西! 网页效果集合(小技巧) Oracle中隐式游标和显式游标的教训[同事的经历] C#.net word 受控编程系列1-向word中插入图片 安装和部署企业程序库(Installation and Deployment of Enterprise Library) OA需要分析3 OA需求分析2 OA需求分析1
基础知识--值类型和引用类型
kwame · 2006-07-14 · via 博客园 - kwame

经过最近二次的面试才发现,惭愧,基础知识几乎全忘记了,怎么对得起我们的老师呀?想当时在学校的时候这些概论的倒背如流,现在用多了反而概念都忘记。笔试都不过还有机会面试吗?所以还是恶补一下基础知识吧。

1、值类型
有两种值类型,结构和枚举
1)结构
堆栈分配的类型比堆式分配类型至少多出三个好处:1、空间分配比堆式分类型要快;2、在堆栈中的值用完以后,会立即自动解除分配;3、一个值类型的变量的值可以复制到另一个值类型的变量,用等号就可以;
注意点:1、如果一个结构在没有new之前,他也是可以使用并设置值的;2、如果没有new,且没有设置值就获得它的值是不允许的。3、如果没有new,那么结构不能复制到另一个结构上的,即不能用等号进行赋值的。

和C/C++不同的时,结构中它们的数据成员默认是私有的;

在C#中,结构可以完成类能完成的大多数任务,但不支持继承;但使用它们的时候要记住,结构的实例是占用堆栈窨比较适合于表示相对较小的对象。
2)枚举
枚举是用户定义的整数类型。
如果要给一个不在可接受组值范围内的值赋值枚举的一个实例,编译会出错。前天面试有一个程序改错题就是这个知识点。
有人说,创建一个枚举从长远来看是可以节约大量时间的,聪明地、适当地使用枚举是专业开发人员的一个特点。

2、引用类型
除了类以外,在C#中还支持许多复合引用类型:接口、委托和数值
1)类
太常用了,倒不知道怎么不定义。我想如果哪个考官问什么是类?不是他是SB,就是我是SB。真不知道怎么回答。封装了数据、访问、操作数据的功能?
2)接口
为实现他们的类定义功能,可以包含属性、方法、事件和索引符。
接口不能被实例化,且不包含方法的执行方式,即接口方法不包含执行该方法的任何代码
3)委托
要讲太多了,委托和事件比较紧,可以专门写它
4)数组
语法是 int[] mint; 定义大小的话就实例化 mint=new int[30]
这是一个长度为30的int类型数组,下标号是0-29;30就会报错
可以在{}中为数组进行初始化值
string[] mstring={"a","b","c"} 等价于乎sting[] mstring=new string[]{"a","b","c"}

注意,不能用变量来设置数组长度,如
int len=3;
string[] mstring=new string[len]{"a","b","c"};
这是错误的,但可以把len设置成常量倒可以
const int len=3;

想动态改变可以用arraylist