C#中什么是句柄
C#书籍中有时会提到句柄,但是都没有介绍什么是句柄、有什么作用,导致让我们这些没有学过其他编程语言人来说很费解。有时候也经常看见获取句柄这些话。请大家生动地介绍一下,不要...
C#书籍中有时会提到 句柄 ,但是都没有介绍什么是句柄、有什么作用,导致让我们这些没有学过其他编程语言人来说很费解。有时候也经常看见 获取句柄 这些话。
请大家生动地介绍一下,不要直接拷贝别人的描述,语言这东西抽象,只看文字是不明白的。 展开
请大家生动地介绍一下,不要直接拷贝别人的描述,语言这东西抽象,只看文字是不明白的。 展开
展开全部
追问
是不是只要系统给资源分配了内存空间,该资源就获得了一个编号(句柄)。
该资源是不是任何对象(分配了内存空间的);
通常书上说 获得取一个句柄,就是让内存分配空间,如果该资源是一个类的对象就是要给这个类一个实例?
追答
类对象是 程序内部生成并分配内存空间在堆中的,一般不用句柄来表示,而用“引用”这个概念,在C#中就是类的实例名了。 资源 一般是指外部事物,比如,一个外部文件 程序读入后就形成资源,用一个句柄来表示。更详细 的 推荐你看一下:
http://wenku.baidu.com/view/c1e70200de80d4d8d15a4fbc.html
展开全部
句柄
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。
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。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单地说,就是用来表示系统中某资源的一个ID值(用整数表示)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询