C#中什么是句柄

C#书籍中有时会提到句柄,但是都没有介绍什么是句柄、有什么作用,导致让我们这些没有学过其他编程语言人来说很费解。有时候也经常看见获取句柄这些话。请大家生动地介绍一下,不要... C#书籍中有时会提到 句柄 ,但是都没有介绍什么是句柄、有什么作用,导致让我们这些没有学过其他编程语言人来说很费解。有时候也经常看见 获取句柄 这些话。
请大家生动地介绍一下,不要直接拷贝别人的描述,语言这东西抽象,只看文字是不明白的。
展开
 我来答
sbin2565317
2011-09-29 · TA获得超过204个赞
知道小有建树答主
回答量:259
采纳率:100%
帮助的人:182万
展开全部
句柄,就是资源的唯一可辨别标志, 其数据是一个四字节整型,只有当资源在内存中被系统分配过后才产生,例如:应用程序实例是一个资源,当你运行这个程序的时候,操作系统就为实例分配了内存空间,如何让操作系统管理这个对象呢?windows的做法就是发给这个程序实例一个通行证(想像为句柄),实例拿到这个通行证,就可以调用windows的API或其他资源了,就像学生入学,学校给发个通行证,你就可以去食堂,图书馆了,但你不可以随便进出校长办公室,这点跟指针不一样,有了指针,你可以进出任何地方,但句柄是有权限的,这由系统决定。

窗口是一种资源,当窗口被创建后,产生窗口句柄
一张图片,在程序中也就是位图句柄
追问
是不是只要系统给资源分配了内存空间,该资源就获得了一个编号(句柄)。
该资源是不是任何对象(分配了内存空间的);
通常书上说 获得取一个句柄,就是让内存分配空间,如果该资源是一个类的对象就是要给这个类一个实例?
追答
类对象是 程序内部生成并分配内存空间在堆中的,一般不用句柄来表示,而用“引用”这个概念,在C#中就是类的实例名了。 资源 一般是指外部事物,比如,一个外部文件 程序读入后就形成资源,用一个句柄来表示。更详细 的  推荐你看一下:
http://wenku.baidu.com/view/c1e70200de80d4d8d15a4fbc.html
zhanglei0318
2011-09-29 · TA获得超过208个赞
知道答主
回答量:93
采纳率:0%
帮助的人:63.5万
展开全部
句柄
C#摒弃了指针,改为引用类型来表达,我们可以将这个引用看作指向实际内存地址的句柄。理解了这一点,C#有关引用类型的种种行为我们就清楚了。看下面这个程序:
using System;
class Element
{
public int Number=10;
}

class Test
{
static void Change(Element s)
{
s.Number=100;
}
static void Main()
{
Element e=new Element();
Console.WriteLine(e.Number);
Change(e);
Console.WriteLine(e.Number);
}
}
程序经编译后执行输出:
10
100
我们看到即使传值方式仍然改变了类型为Element类的对象t。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
琴秀曼Bp
2011-09-29 · TA获得超过690个赞
知道小有建树答主
回答量:615
采纳率:0%
帮助的人:663万
展开全部
简单地说,就是用来表示系统中某资源的一个ID值(用整数表示)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
学好数学数学好学
2011-09-29 · 超过62用户采纳过TA的回答
知道小有建树答主
回答量:736
采纳率:25%
帮助的人:192万
展开全部
其实就是窗体在系统中的一个编号。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
满秀敏02H
2011-09-29 · TA获得超过217个赞
知道答主
回答量:212
采纳率:0%
帮助的人:137万
展开全部
不清楚,没听过哟,顶!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式