⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 腾讯社区:初探c#--2.htm

📁 Flash初级教程
💻 HTM
📖 第 1 页 / 共 2 页
字号:
                  <BR>&nbsp;&nbsp;&nbsp; first = new Node(o, first); <BR>&nbsp; 
                  } <BR>&nbsp; class Node <BR>&nbsp; { <BR>&nbsp;&nbsp;&nbsp; 
                  public Node Next; <BR>&nbsp;&nbsp;&nbsp; public object Value; 
                  <BR>&nbsp;&nbsp;&nbsp; public Node(object value): this(value, 
                  null) {} <BR>&nbsp;&nbsp;&nbsp; public Node(object value, Node 
                  next) { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next = next; 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Value = value; 
                  <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp; } <BR>} <BR><BR>class Test 
                  <BR>{ <BR>&nbsp; static void Main() { <BR>&nbsp;&nbsp;&nbsp; 
                  Stack s = new Stack(); <BR>&nbsp;&nbsp;&nbsp; for (int i = 0; 
                  i &lt; 10; i++) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s.Push(i); 
                  <BR>&nbsp;&nbsp;&nbsp; while (!s.Empty) 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(s.Pop()); 
                  <BR>&nbsp; } <BR>} <BR>/* 
                  <BR>stack类实现了一系列Node的实例。大家可以看看stack类的Push方法。Node的实例就是在Push方法中创建的。 
                  <BR>就是“first = new Node(o, 
                  first);”。请记住这个“new”噢。它就是用来创建类实例的。相关的语法太 
                  <BR>多,遛到后面用一节详细讲。这里只是要了解自动内存管理(Automatic memory 
                  management)好处?!“new” 
                  <BR>是负责初始化类实例。而在c/c++中释放这些实例要用另一个关键字“delete”。但是在什么时候用delete呢, 
                  <BR>这通常是很费神的活,老手也会阴沟里翻船。何况是俺呢!但在c#中有不用了。例子里就没有用“delete”。 
                  <BR>当Node的实例不需要时,垃圾收集器(garbage 
                  collector)自动销毁它,不用俺操心喽。这点到和java挺 <BR>像的(可能是抄的)。 
                  <BR><BR>在一个test类里,俺用了一个循环,对stack类的实例的Push方法赋值十次。于是,Push创建了Node的十个实 
                  <BR>例(instance)。然后用Pop把它们显示出来。其顺序正好与创建的顺序相反。 
                  <BR>这个例子相当的好,是stack 
                  <BR>的一个典型,也很好的表述了自动内存管理的机制。但也不好懂,好在这一节不是写给毫无基础的网友看的。 
                  <BR>俺自个都花了几分钟看明白,各位大虾更是没问题。 
                  <BR><BR>其实,当显示完了“10”以后,就会有一个Node的实例符合被释放的条件,但垃圾收集器并不一定会这样做。 
                  <BR>也就是说,它的行为并不确定(这和java一样,俺猜)。有时候,这种行为会带来一些负面影响。起码是性 
                  <BR>能降低。自动内存管理本身也是有问题的。因为它很难管理一些特殊情况。有一些关于java的垃圾收集器的 
                  <BR>文章也有提到。m$也不会好得了多少。所以,m$有个不安全代码的术语(unsafe code),用来为高级用户服 
                  <BR>务。即,用户可以不采用垃圾收集器。但必须用“unsafe”关键字显式声明之。这样就避免了用户不经意以 
                  <BR>外使用不安全代码。下面是一个例子:*/ <BR><BR>using System; <BR>class Test 
                  <BR>{ <BR>&nbsp; unsafe static void WriteLocations(byte[] arr) 
                  { <BR>&nbsp;&nbsp;&nbsp; fixed (byte *p_arr = arr) { 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte *p_elem = p_arr; 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; 
                  arr.Length; i++) { 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte value = 
                  *p_elem; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string 
                  addr = int.Format((int) p_elem, "X"); 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  Console.WriteLine("arr[{0}] at 0x{1} is {2}", i,&nbsp; addr, 
                  value); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  p_elem++; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } 
                  <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp; } <BR>&nbsp; static void 
                  Main() { <BR>&nbsp;&nbsp;&nbsp; byte[] arr = new byte[] {1, 2, 
                  3, 4, 5}; <BR>&nbsp;&nbsp;&nbsp; WriteLocations(arr); 
                  <BR>&nbsp; } <BR>} <BR>/* 
                  <BR>俺对这个例子不是很满意,也让俺有点迷惑,有机会再自己写一个。很简单,只是可以用指针了!万岁! 
                  <BR>其实,俺对这一节最没有把握了!有不少地方都不能自圆其说!所以,请各位大虾大力批评。*/<BR><BR><IMG 
                  height=10 src="腾讯社区:初探c#--2.files/tiny3.gif" width=10 
                  border=0> <IMG height=10 src="腾讯社区:初探c#--2.files/tiny3.gif" 
                  width=10 border=0> <IMG height=10 
                  src="腾讯社区:初探c#--2.files/tiny3.gif" width=10 border=0><BR><FONT 
                  color=#568ac2></FONT><BR><FONT 
              color=#ff8080></FONT></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD>
            <TABLE cellSpacing=0 cellPadding=1 width="100%" align=center 
            bgColor=#e9f4ff border=0>
              <TBODY>
              <TR>
                <TD class=t1 noWrap>作者:<A 
                  href="http://search.tencent.com/cgi-bin/friend/user_show_info?ln=21847847"><IMG 
                  height=16 src="腾讯社区:初探c#--2.files/153.gif" width=16 
                  align=absMiddle border=0> 王志清[21847847]</A> 2000-10-19 
                  12:02:42 </TD>
                <TD noWrap align=right width="25%"><A class=edit 
                  href="http://bbs.tencent.com/cgi-bin/bbs/bbs_post?type=r&amp;messtype=r&amp;back=1&amp;groupid=102:10047&amp;messageid=145069&amp;begnum=0&amp;bbegnum=20&amp;mmessageid=263293&amp;st=0&amp;sc=&amp;club=">[回复]</A> 
                </TD></TR></TBODY></TABLE>
            <TABLE cellSpacing=5 cellPadding=5 width="100%" bgColor=#ffffff 
            border=0>
              <TBODY>
              <TR>
                <TD class=content>哈哈!又抢到个前排…… <BR>Dinosaur_不用怕啦!体力会有的,呵呵! 
                  <BR><BR><BR><IMG height=10 src="腾讯社区:初探c#--2.files/tiny3.gif" 
                  width=10 border=0> <IMG height=10 
                  src="腾讯社区:初探c#--2.files/tiny3.gif" width=10 border=0> <IMG 
                  height=10 src="腾讯社区:初探c#--2.files/tiny3.gif" width=10 
                  border=0><BR><FONT color=#568ac2></FONT><BR><FONT 
                  color=#ff8080></FONT></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=0 cellPadding=0 width="98%" align=center border=0 
      hspace="0" vspace="0">
        <TBODY>
        <TR>
          <TD vAlign=top width=12 bgColor=#a8cbf1>&nbsp;</TD>
          <TD width="75%" bgColor=#a8cbf1>
            <TABLE cellSpacing=0 cellPadding=0 width="20%" border=0>
              <TBODY>
              <TR>
                <TD><A class=bar2 
                  href="http://bbs.tencent.com/cgi-bin/bbs/bbs_show_content?from=t&amp;groupid=102:10047&amp;messageid=145070&amp;bbegnum=20">上一篇</A></TD>
                <TD><A class=bar2 
                  href="http://bbs.tencent.com/cgi-bin/bbs/bbs_show_content?from=t&amp;groupid=102:10047&amp;messageid=145068&amp;bbegnum=20">下一篇</A></TD></TR></TBODY></TABLE></TD>
          <TD align=right bgColor=#a8cbf1>
            <TABLE cellSpacing=0 cellPadding=0 width=200 align=right border=0>
              <TBODY>
              <TR>
                <TD align=right><A class=bar2 
                  href="http://bbs.tencent.com/cgi-bin/bbs/bbs_show_my_msg?Ppage_no=">返回 
                  &lt;&lt;</A></TD></TR></TBODY></TABLE></TD>
          <TD vAlign=top width=12 
  bgColor=#a8cbf1>&nbsp;</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<P align=center><BR>
<DIV align=center><IFRAME marginWidth=0 marginHeight=0 
src="腾讯社区:初探c#--2.files/Tencent-Default-Bott.htm" frameBorder=0 width=468 
scrolling=no height=60 bordercolor="#000000"></IFRAME><BR><FONT 
style="FONT-SIZE: 12pt; COLOR: #5599ff; LINE-HEIGHT: 14pt; FONT-FAMILY: Impact">Tencent</FONT><FONT 
style="FONT-SIZE: 12pt; COLOR: #ff9955; LINE-HEIGHT: 14pt; FONT-FAMILY: Impact">.com</FONT> 
<FONT style="FONT-SIZE: 11pt; FONT-FAMILY: 宋体" color=#000000>&nbsp;腾讯科技 
1998-2000(C)</FONT> <IMG height=1 
src="H:\my_web\web\腾讯社区:初探c#--2.files\Count(1).gif" width=1>
<SCRIPT>document.write("<img width=0 height=0 src=http://best.netease.com/cgi-bin/log.cgi?user=oicq&refer="+escape(document.referrer)+"&cur="+escape(document.URL)+" border=0>");</SCRIPT>
 </DIV></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -