c#学习读书笔记《1》

原创 2006年05月22日 00:24:00

1.设置环境变量: path =C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727

2.helloworld.cs 第一个程序

namespace InsideCSharp
{
    class HelloWorldConsoleApp
    {
        static void Main()
        {
            System.Console.WriteLine("hello,world");
        }
    }
}

cmd-->  csc helloworld.cs   -->helloworld.exe

namespace 可以嵌套

被引用时用  using A;   但是当引用多个名称空间时,类不能有歧义。可以完全限定。

3。了解底层代码MSIL

用dumpbin.exe实用程序查看(^^据说业界都用这个看二进制代码的内部)(在C:/Program Files/Microsoft Visual Studio 8/VC/bin下)

CMD-->dumpbin  /HEADERS /CLRHEADER helloworld.exe

//*******************************ji

 E:/study/2006/c#>dumpbin /headers /clrheader helloworld.exe
Microsoft (R) COFF Binary File Dumper Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

DUMPBIN : warning LNK4044: unrecognized option "clrheader"; ignored

Dump of file helloworld.exe

PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
             14C machine (i386)
               3 number of sections
        44708882 time date stamp Sun May 21 23:34:26 2006
               0 file pointer to symbol table
               0 number of symbols
              E0 size of optional header
             10E characteristics
                   Executable
                   Line numbers stripped
                   Symbols stripped
                   32 bit word machine

OPTIONAL HEADER VALUES
             10B magic #    //表明确实是一个合法的PE
            8.00 linker version
             400 size of code
             600 size of initialized data
               0 size of uninitialized data
            234E RVA of entry point
            2000 base of code
            4000 base of data
          400000 image base
            2000 section alignment
             200 file alignment
            4.00 operating system version
            0.00 image version
            4.00 subsystem version
               0 Win32 version
            8000 size of image
             200 size of headers
               0 checksum
               3 subsystem (Windows CUI)
             400 DLL characteristics
                   RESERVED - UNKNOWN
          100000 size of stack reserve
            1000 size of stack commit
          100000 size of heap reserve
            1000 size of heap commit
               0 loader flags
              10 number of directories
               0 [       0] RVA [size] of Export Directory
            2300 [      4B] RVA [size] of Import Directory
            4000 [     2B0] RVA [size] of Resource Directory
               0 [       0] RVA [size] of Exception Directory
               0 [       0] RVA [size] of Certificates Directory
            6000 [       C] RVA [size] of Base Relocation Directory
               0 [       0] RVA [size] of Debug Directory
               0 [       0] RVA [size] of Architecture Directory
               0 [       0] RVA [size] of Special Directory
               0 [       0] RVA [size] of Thread Storage Directory
               0 [       0] RVA [size] of Load Configuration Directory
               0 [       0] RVA [size] of Bound Import Directory
            2000 [       8] RVA [size] of Import Address Table Directory
               0 [       0] RVA [size] of Delay Import Directory
            2008 [      48] RVA [size] of Reserved Directory
               0 [       0] RVA [size] of Reserved Directory


SECTION HEADER #1
   .text name
     354 virtual size
    2000 virtual address
     400 size of raw data
     200 file pointer to raw data
       0 file pointer to relocation table
       0 file pointer to line numbers
       0 number of relocations
       0 number of line numbers
60000020 flags
         Code
         Execute Read

SECTION HEADER #2
   .rsrc name
     2B0 virtual size
    4000 virtual address
     400 size of raw data
     600 file pointer to raw data
       0 file pointer to relocation table
       0 file pointer to line numbers
       0 number of relocations
       0 number of line numbers
40000040 flags
         Initialized Data
         Read Only

SECTION HEADER #3
  .reloc name
       C virtual size
    6000 virtual address
     200 size of raw data
     A00 file pointer to raw data
       0 file pointer to relocation table
       0 file pointer to line numbers
       0 number of relocations
       0 number of line numbers
42000040 flags
         Initialized Data
         Discardable
         Read Only

  Summary

        2000 .reloc
        2000 .rsrc
        2000 .text
//********************************

为了研究c#和.net元素如何实现,用Framework SDK中的反汇编工具,ILDASM.

(ildasm.exe: C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bin)

其他还有配件(assembly),模块,构建配件,创建共享配件,使用全局配件缓存等内容,在此不再祥述^^

学会学习 读书笔记

从小学到大学之前,一直都是学习课本知识,并没有多少自主学习的意识,到了大学和研究生之后,虽然自己也有主动去学习,但是一直觉得收获并不是那么大,没有明确的目标,多多少少也看过一些书,但是仅仅局限于看过,...
  • wendy_fly
  • wendy_fly
  • 2016年06月10日 11:51
  • 667

读书笔记——bootstrap

bootstrap 按照规定的DOM结构 类名就能展示一定的页面 比如轮播图, 把CSS样式独立作为文件 还有逻辑独立成为js文件,就可以成为一个 轮播图框架, 别人只要按照一定的DOM结构...
  • qq_39167354
  • qq_39167354
  • 2018年01月02日 17:53
  • 26

c# 读书笔记一

1.c#4.0更新新的动态类型功能,并不总是以静态方式确知对象最终是什么类型。不使用object关键字和从这个类型生成的所有对象,而可以让动态语言运行库在运行期间动态确定对象的类型。 关键字 :dyn...
  • tangjue18246068217
  • tangjue18246068217
  • 2016年10月14日 14:48
  • 137

学习《UNIX网络编程卷一》笔记

学习《UNIX网络编程卷一》笔记
  • zhang_yin_liang
  • zhang_yin_liang
  • 2017年04月11日 16:11
  • 504

《python学习手册》读书笔记(2015.4.27)

CSDN的博客审核每次都让我觉得发辫时间不太对了,好吧虽然我现在是在28号早上写的,昨天周一,上课打比赛换届,今天晚上交作业,时间不多,也没看多少。...
  • zhu_free
  • zhu_free
  • 2015年04月28日 08:52
  • 495

《学习之道》读书笔记

第1部分 基础 1.无心之举 犯错的时候,要问 是怎么想的,而不是你为什么犯错,你一无是处。 2.转败为胜 失败后,如何走出困境?对事物的热爱和激情,比获胜更重要。 当没有胜算时,要会拯救比...
  • zlw4610
  • zlw4610
  • 2016年12月29日 16:13
  • 337

杰哥的《深度学习》读书笔记 - 前言

最近开始学深度学习(Deep Learning,DL),主要是读Ian Goodfellow, Yoshua Bengio和Aaron Courville合著的《深度学习》一书。我打算边读边写读书笔记...
  • tensorflow
  • tensorflow
  • 2016年08月23日 07:28
  • 1049

《Java 核心技术卷一》读书笔记

书目信息 英文名:Core Java Volume I —— Foundamentals 作者:Cay S. Horstmann Gary Cornell 译者:周立新 陈波 叶乃文 ...
  • niexianglin_csdn
  • niexianglin_csdn
  • 2016年01月09日 18:37
  • 385

《Java 2 实用教程》读书笔记(四)4.4

第4章  类、对象和接口 1. 实例变量和类变量的区别:     如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其他对象的这个类变量...
  • u010275636
  • u010275636
  • 2016年03月25日 15:52
  • 173

学习Markdown 基本用法总结

标题设置(让字体变大,和word的标题意思一样) 在Markdown当中设置标题,有两种方式: 第一种:通过在文字下方添加“=”和“-”,他们分别表示一级标题和二级标题。 第二种:在文字开头加上...
  • Army_Jun
  • Army_Jun
  • 2016年03月10日 17:44
  • 710
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c#学习读书笔记《1》
举报原因:
原因补充:

(最多只允许输入30个字)