c# 句柄是什么意思
有时看书的时候,或者VS编译的时候会出现“句柄”这个词!在C#里句柄是什么意思?大家能不能简单的讲讲?...
有时看书的时候,或者VS编译的时候 会出现“句柄”这个词!
在C#里 句柄是什么意思?
大家能不能简单的讲讲? 展开
在C#里 句柄是什么意思?
大家能不能简单的讲讲? 展开
展开全部
你可以把句柄理解为对象名,比如有个类 Class1,你申明了一个该类的对象,Class1 c1 = new Class1();那么这时c1就是一个句柄,它代表了一个Class1类的对象,通过c1你可以调用该类的一切方法、属性。对象是一个复杂的集合,它有很多属性,分配在内存堆里,而句柄只是给这个对象取的一个代号,它就是几个字符而已,存储在内存栈中。就如同人的名字一样,张三是一个人的名字,它就是一个人的句柄(张三这个句柄只是两个汉字,而它代表的张三这个人却是一个复杂的生命体-人)。
推荐于2016-01-05 · 知道合伙人数码行家
关注
展开全部
句柄实际上是一种指向某种资源的指针。
但与指针又有所不同:指针对应着一个数据在内存中的地址,得到了指针就可以自由地修改该数据。Windows并不希望一般程序修改其内部数据结构,因为这样太不安全。
所以Windows给每个使用GlobalAlloc等函数声明的内存区域指定一个句柄(本质上仍是一个指针,但不要直接操作它),
平时只是在调用API函数时利用这个句柄来说明要操作哪段内存。
但与指针又有所不同:指针对应着一个数据在内存中的地址,得到了指针就可以自由地修改该数据。Windows并不希望一般程序修改其内部数据结构,因为这样太不安全。
所以Windows给每个使用GlobalAlloc等函数声明的内存区域指定一个句柄(本质上仍是一个指针,但不要直接操作它),
平时只是在调用API函数时利用这个句柄来说明要操作哪段内存。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实句柄一词在c#中并不常用,它主要在mfc或windowsAPI编程时候用的多,c#中的winform和wpf基本没有他的应用,但这也是windows编程中的基本概念,简单理解,按钮,窗体,文本框都有一个句柄,它是操作系统用来区分不同按钮,窗体的,比如说,你按下浏览器的关闭按钮,操作系统会精准的只关闭浏览器,而不是我的电脑,这就是用句柄来区分的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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。
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。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在班上每个人都有学号来让老师区别每一个人,句柄就是电脑用来区别消息(获取其他)的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询