C# 点滴(一)

1. C#数据类型分为值类型,引用类型。其中基本的数据类型比如int,double等,以及struct是值类型;而object,class,string,dynamic属于引用类型。

C#中内存分为堆栈内存(相当于C++/C中的栈内存)和托管堆内存(相当于C++/C中的堆内存),堆栈内存随着程序调用函数结束而自动释放,托管堆内存由C#的垃圾回收机制在适当的时候进行回收。

其中值类型数据存放在堆栈内存,而引用类型的数据(准确的说是数据实体而不是数据变量名)存放在托管堆上。比如 int a = 3, 变量a存放在堆栈内存上;Object c = xx; 变量c 是一个引用,它指向xx在托管堆中的内存位置;而变量c本身是一个值变量,存放在堆栈区。

2. C# 中类和结构有以下几个基本的不同点:

  • 类是引用类型,结构是值类型。
  • 结构不支持继承。
  • 结构不能声明默认的构造函数。
时间: 2024-08-29 07:16:47

C# 点滴(一)的相关文章

牛腩新闻发布系统总结(四)--知识点滴

紧接上篇博客:牛腩新闻发布系统总结(三)----知识点滴,继续我们的总结: 第五,在回复评论后如何保持滚动条的位置不变: <%@ Page Title="新闻内容-牛腩新闻发布系统" Language="C#" MasterPageFile="~/common.Master" AutoEventWireup="true" CodeBehind="newsContent.aspx.cs" Inherit

java点滴之volatile关键字特性

一 问题引入 JVM把内存分为两层,一层为大的主存,另外一个是工作内存(属于每个线程自己专属的),正常情况下,线程在用到某个变量的值时,都是先取到工作内存中进行处理,然后再写回主存,这样就会带来不同线程变量值不同步的问题. volatile字面意思是易挥发,不稳定,比如100个线程同时访问修改的一个字段值,那么这种值的特性明显和JVM中高速缓存机制不相符,这种值是不适合放在各线程自己的寄存器中的,那会导致100个线程中持有的副本都不一样. 二volatile修饰符作用 当一个变量被声明成 vol

专题:点滴Javascript

JS#43: 使用ECMAScript 6 Symbols创建私有属性 JS#42: 使用ECMAScript 6 Sets JS#41: Javascript使用递归和迭代造成栈溢出问题 JS#40: 使用console.time测试Javascript性能 JS#39: Javascript中判断两个日期相等 JS#38: Javascript中检测数组和对象 JS#37: Javascript中计算Object的长度 JS#36: 使用ECMAScript 6 Maps JS#35: 使用

点滴积累【C#】---验证码,ajax提交

效果: 思路: 借用ashx文件创建四位验证,首先生成四位随机数字.然后创建画布,再将创建好的验证码存入session,然后前台进行button按钮将文本框中的值进行ajax请求到后台,和session中的验证码进行对比,成功返回true,失败返回false. 代码: [前台] 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="verifycodeDemo.aspx.cs"

点滴记录——Ubuntu 14.04中gedit打开文件出现中文乱码问题

在中文支持配置还不完整的Ubuntu 14.04中,使用gedit打开带有中文字符的文件有时会出现乱码的情况,这是由于gedit对字符编码匹配不正确导致的,解决方法如下: 在终端中输入如下命令,然后重新打开gedit即可: gsettings set org.gnome.gedit.preferences.encodings auto-detected "['GB18030', 'GB2312', 'GBK', 'UTF-8', 'BIG5', 'CURRENT', 'UTF-16']"

点滴记录——在Ubuntu 14.04中使SublimeText 3支持中文输入法

在Ubuntu 14.04中安装了SublimeText 3之后发现既然不支持输入中文,于是在网上搜罗一下,发现很多人遇到了同样的问题,但是解决办法大该就只有一个.下面根据自身的安装及解决办法总结如下: 1. SublimeText 3的安装 安装方式有多种,本文所描述的是从官方网站上下载64位的.deb文件 ,具体为http://c758482.r82.cf2.rackcdn.com/sublime-text_build-3059_amd64.deb文件,下载后双击即会自动使用默认的安装软件安

【C#】编程点滴:关于Static的思考

在ADO.NET数据访问层我们通常会将数据库连接字符串写成这样private static readonly string _conStr = "server=.;database=Product;uid=sa;pwd=sa";.这样的情况很多,比如单例模式.可能是出于约定俗成吧,也可能是习惯了"海淘"人家的,很多东西也没深入去考虑为什么要这样写(说我自己).或许是看人家都这么写.那么为什么要用static来修饰?为什么还要加上readonly?又为什么说静态的是线

java点滴之InetAddress类和InetSocketAddress的使用

一简介 InetAddress是Java对IP地址的封装,代表互联网协议(IP)地址: InetAddress对象的获取只能通过静态方法,比如根据主机名获取主机的ip地址封装对象: InetAddress add=InetAddress.getByName("BOPZKQZ9SSY5ECY"); 主机名:BOPZKQZ9SSXXXXX,  ip地址:1XX.1XX.2XX.210 InetSocketAddress是SocketAddress的实现子类. 此类实现 IP 套接字地址(I

fedora 配置使用点滴

fedora 配置使用点滴 fedora 16 无线网设置 fodera16是3.x的内核,无线网卡的驱动有点不一样. 可以用如下方法安装,需要先用有线网来安装几个包,步骤如下: 执行这个命令看看网卡 lspci | grep Network 如果是Broadcom Corporation这个厂商的 应该没有问题 我们继续 以下都在root下执行 执行这两个rpm包 它会为你的yum添加我们需要的源 rpm -Uvh http://download1.rpmfusion.org/free/fed

[转]修改ulimit值的学习点滴

修改ulimit值的学习点滴: 网上有好多修改ulimit的文章,但大多仅限于对当前交互shell的修改,如果只是为了提高某一次执行脚本的文件句柄打开数,以下方法非常有效: 操作系统: CentOS 5.1 x86_64 1)修改当前交互终端的limit值 查询当前终端的文件句柄数: ulimit -n 回车,一般的系统默认的1024. 修改文件句柄数为65535,ulimit -n 65535.此时系统的文件句柄数为65535. 2)将ulimit 值添加到/etc/profile文件中(适用