招VC++程序员(北京)

aaric 2007-06-02 04:56:32
[Windows C++ 程序员]
精通 Visual C++ 6 或 Borland C++ Builder6,有两年以上程序设计经验,有开发大中型应用程序经验,有良好地团队合作精神。

工作地点位于北京万达广场B座。(国贸桥附近)
薪水面议。

应聘者请将简历及联系方法发送至 aaric@p8.com ,符合要求的我们将马上通知面视。
...全文
377 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
greenabc 2007-06-04
  • 打赏
  • 举报
回复

原来是 P8 呀

p8我给你们免费测试了,发现一个 bug,

ListCtrl 的排序,你拖动一个标题项,然后点它发现是另一个标题项(原来这个位置的)中出现小三角.
Cat_Of_9Life 2007-06-03
  • 打赏
  • 举报
回复
公司介绍?职位相关介绍?
gogovista 2007-06-03
  • 打赏
  • 举报
回复
两年的7k
比较真实的数据~~~~~
aaric 2007-06-02
  • 打赏
  • 举报
回复
工资要视水平高低面议,如果水平高,公司能承受月薪7000元。
cosobin 2007-06-02
  • 打赏
  • 举报
回复
北京不负责吃住,工资?K?
Seu_why 2007-06-02
  • 打赏
  • 举报
回复
ding
aaric 2007-06-02
  • 打赏
  • 举报
回复
必须在北京工作,不在北京也能应聘,不过公司不负责解决吃住。
greenabc 2007-06-02
  • 打赏
  • 举报
回复
不在北京能应聘不?
关于举办2009’CHINA3S’3S技术一体化应用研讨会暨遥感与GIS制图、Google Earth与Google Map等虚拟三维仿真建模与共享软件应用开发及ARCGIS与遥感分析操作应用高级程序员学习班的最新通知 (2009.6.19—30) Google Earth是一种桌面应用程序,可以Web方式浏览虚拟数字地球系统,可实现全球地理数据共享与三维仿真。其提供ArcGis/MapInfo等地理数据应用程序接口,可实现与其它遥感软件的交互性操作,其性能优于国内外众多网络GIS平台。GIS是数据库、图论、拓扑学、图像处理、人工智能、虚拟现实及计算机地形学等多门学科综合的高新技术,广泛应用于军事、政府办公、环保、生态、水利、水土保持、国土、测绘、林业、农业、城建与规划、交通、海洋、石油、导航、气象等众多领域。至于遥感与全球定位,我国未来五年将实施的五大航天工程,将建立长期稳定的对地观测系统体系、协调配套全国遥感应用体系;分布建立满足应用的卫星导航系统,将形成该应用产业。 尽管3s具有重要的地位与作用,但应用不尽人意,主要是缺乏熟练的、跨学科的高级操作应用人才;缺乏熟悉3s与地图学的开发人才;缺乏熟练的、经验丰富的3S人才。熟练的、经验丰富的开发人才,举办3S与Google Earth最新技术学习班。欢迎垂询、报名!具体事项如下: 一、培训对象:相关政府主管部门及企事业研究院(所)、大专院校及勘察、勘探、设计、测绘、勘测院、所、队的领导与业务技术骨干等相关人员。二、培训师资:在3S学习班中交替担任: 南京大学计算机/遥感/生态专业博导、教授;中科院地理所研究员、博士、留美留德访问学者;南京信息工程大学遥感专业博士生导师、教授;东南大学博士后、副教授;南京大学毕业博士、中科院遥感所博士后;南京师范大学博士、优秀骨干教师;南京大学与中科院大气所联合培养毕业博士、南京大学中青年优秀骨干教师;南京理工大学博士、南京理工大学中青年优秀骨干教师;GIS硕士、南京路川公司专业技术开发工程师;河海大学博士、南京路川信息系统工程有限公司3S与无线传感网络通讯系统工程技术应用研究中心高级讲师;南京大学规划专业博士、南京路川公司特聘高级讲师; 三、培训特点、目标、效果: 按照本培训内容,紧扣核心技术,采用理论及演讲和上机操作相结合,并结合实际案例,精讲多练(上课时间:上午、下午及晚上每天8.5--9.5小时),提高实际开发与操作技术,掌握了解最新技术动态应用,通过实际项目实例的实际与操作,达到能完成一定难度的高级应用,并介绍相关数据与软件的标准、概要、特点及转换方式与各数据、软件系统之间处理及转换。并老师与学员共同交流项目应用与开发经验,以最为客观公正,而非商业化目的介绍、评价有关国内外GIS、遥感软件的优势与弱势。经考试合格,并颁发GIS 高级程序员高级研修班结业证书及3s高级系统设计工程师水平资质证书,全国各级人事、教育、职改部门承认的专业技术继续教育证书。 四、时间:报到时间:2009年6月19日8:00~12:30; 研修班与技术交流研讨会时间:2009.6.19下午—30,其中高级程序员学习研修班:2009.6.19下午—26 五、收费标准:研修班会务、培训费和上机及其材料费敬请来电咨询。2009.6.29—30培训实习,实习费部分自理另计,相关事项来电咨询,统一代办住宿,住宿自理。双人空调标准间,24小时热水。住宿上课上机均有投影与空调和茶水。另可提前代办预定车船机票。参加本次3S高级研修班的学员代表费用全免,上述内容各人根据需要自主选修! 29日-30日组织去皖南研讨学习,考察3S在黄山、皖南旅游风景区规划及历史文化遗产保护中的3S应用单位。费用根据各自需要部分另收。个人自愿参加,实习费用可按需要另计 六、资料软件赠送:赠送有关GIS软件;赠送所需的GOOGLE EARTH与当前其它遥感图像的共享软件及其自动数字化与后台自动转换地理矢量数据软件各1套;赠送网上三维建模软件及有关虚拟现实三维建模软件及其三个实例(.exe仿真交互式软件)及PPT;另赠送GOOGLE EARTH的演示示例及相关PPT与数据及二次开发资料;基于地图控件与VB开发的电子地图浏览器一套(用于GIS系统的集成开发);GIS图形符号编辑器一套;DEM生成制作软件;VisualC++开发应用实例光盘一张;并赠送开发的三维地形飞行浏览及水利工程与防汛GIS系统演示软件、OpenGL开发的三维地形动画(数字城市)电力工程选线GIS系统演示光盘。并向参会代表免费提供下列GIS工程文档资料及软件和源程序,并赠送部分GIS软件和部分源程序信演示光盘。除正常应免费赠送的软件与资料电子光盘外,另有自编译相关著名GIS软件二次开发手册、编译代码、相关项目开发文档、并提供可与Google earth数据交换的网上建筑三维建模共享软件、GIS软件在相关专业的中文操作使用手册以及相关GIS教学课件资料和演示案例等资料与光盘。 备注:网上电子版培训通知文件去掉了公章印章,如需要正式会议通知请来电会务组索取或会议现场领取。另*为备选内容,依学员报名时要求,事先预约安排确定介绍。 七、报名联系方法:凡欲报名的单位或个人可提前确认(打电话/发E—mail/信函均可)。 联系人:徐老师或王老师 联系电话:(025)83418450;83410685; 传真:(025)83418450 会议培训报名与上机地址:南京市北京西路77号江苏教育学院,会议培训上课和住宿地址:南京市汉中路185号 地址:南京市福建路31号华富大厦18楼,210003 邮政通讯方式:南京鼓楼邮局218#信箱,210008 E-mail:gis20080808@sina.com http://www.china3s.net 南京路川信息系统工程有限公司 Google Earth等仿真与共享软件应用 及GIS与遥感操作分析开发学习班筹备会务组 2009年5月15日 国际3S最新技术应用及遥感与GIS制图、Google Earth与Google Map等 虚拟三维仿真建模与共享最新方法应用及ARCGIS与遥感分析操作应用 高级程序员全面系统学习班 日程安排 (2009.6.19-26) 第一单元:国际3S最新技术--3S一体化最新应用与遥感最新理论与应用: 1、3S一体化在城镇土地定级中应用 主讲人:GIS硕士、南京路川公司专业技术开发工程师 2、遥感理论与遥感最新技术开发:介绍遥感理论及一种先进的遥感图像技术及其遥感软件及其实例与专题制图,并对国外著名遥感软件进行介绍比较;并侧重介绍国土资源管理及其土地利用之实例。 3、高光谱理论及应用:介绍高光谱遥各领域中的实际应用 主讲人:南京大学毕业博士、中科院遥感所博士后(2、3) 4、高光谱遥感最新应用:(1)、高光谱遥感与旱情监测应用;(2)、高光谱遥感与精细农业案例;(3)、油气信息遥感提取案例; 主讲人:南京大学毕业博士、中科院遥感所博士后 5、介绍ENV14.5遥感图像软件介绍及遥感上机: 主讲人:GIS硕士、南京路川公司专业技术开发工程师 6、农业遥感原理及其应用案例:农业遥感 7、林业遥感与土壤侵蚀遥感定量研究及其应用案例: 主讲人:南京大学毕业博士、中科院遥感所博士后(6、7) 8、国际遥感前沿进展最新技术应用与定量遥感内容:高光谱和多光谱遥感及其应用 主讲人:南京大学毕业博士、中科院遥感所博士后 主讲人:GIS硕士、南京路川公司专业技术开发工程师 9、Erdas进行影像匹配,几何较正 主讲人:GIS硕士、南京路川公司专业技术开发工程师 10、遥感图像入理软件ERDAS9.2的操作上机:可结合实例讲授用ERDAS制作飞行、淹没、透视的过程(侧重介绍其在水土保持等行业中的运用)。(空调机房) 主讲人:GIS硕士、南京路川公司专业技术开发工程师 11、用ENVI4.5遥感软件,讲授遥感数据融合研究或ENVI+IDL开发语言介绍及其二次开发(空调机房) 主讲人:GIS硕士、南京路川公司专业技术开发工程师 12、用ERDAS遥感软件方法绘制更新电子地图 主讲人:GIS硕士、南京路川公司专业技术开发工程师 13、用ERDAS操作上机——基于遥感的三维景观可视化技术应用设计开发 主讲人:南京大学博士(12、13) 14、遥感在资源灾害与污染监测中的应用方法实例及解决方案 主讲人:南京大学博士 15、遥感特征目标提取与遥感图像数据挖掘或matlab进行遥感图像影像处理 主讲人:GIS硕士、南京路川公司专业技术开发工程师 16、ENVE+IDL的二次开发与三维可视化编程开发或水文模型与水文遥感应用 主讲人:GIS硕士、南京路川公司专业技术开发工程师(14、15) 第二单元:国际3S最新技术应用--- Google Earth\ Google Map\无线传感网络与全球地理数据共享(机房):(12或15课时) 1、Google Earth简介:GE主要功能演示: 2、Google Earth应用及网上三维建模共享软件应用:网上三维建模软件技术方法与操作应用,网上3D模型制作与仿真 1)城市规划与房地产系统;2)模拟飞行;3)飞机导航;4)汽车导航系统;公路交通管理5)天气预报系统;6)灾害预报演示;7)精细三维模型演示:水利管理;8)资源分布演示,动态变化的演示;9)获得特定区域的高清图片、下载获取制作1∶5 000或10 000的电子地图数据 3、Google Earth数据介绍与转换 4、GE API开发:开发实例还可以根据学生需求再做添加。Google Earth的二次开发及其语言将详细介绍。 5、其他虚拟数字地球系统简介: 6、Google Map 应用开发:1)Google Map介绍;2)Google Map API介绍;3)Google Map网络开发技术与应用:将详细介绍其开发实例:(1)Google Map与传统webgis区别;(2)目前国际最先进的网络GIS—————Google Map其二次开发的关键技术; 7、GM开发实例:如果感兴趣,还可以详细演示说明根据GM机制,自行开发webgis介绍一下基于Google Map这种机制,国内一些主要的软件和网站 8、GOOGLE.EARTH与全球地理数据共享及无线传感网络介绍:介绍Google earth全球海量影像地图数据存储与索引、检索机制的研究分析及影像分块技术的探讨;介绍ArcGIS9.2与Google Earth中Google maps所提供的地理数据应用程序接口(API);重点介绍GOOGLE.EARTH与其它遥感软件互操作与数据下载的使用方法及GOOGLE.EARTH遥感图像数据共享。 主讲人:GIS硕士、南京路川公司专业技术开发工程师 第三单元:地理信息系统基础概论及GIS数字地图与遥感制图 主讲人:GIS硕士、南京路川公司专业技术开发工程师 第四单元:国际最优秀GIS最新技术应用---ARCGIS9.2/9.3系列专题 1、介绍目标前国际上最优秀的GIS软件ARCCIS9体系结构及全面了解ARCCIS9.0桌面系统的体系结构和功能介绍,介绍ESRI的ARC-CATALOG,ARCTOOLBOX通用GIS解决方案的精彩设计以及最新的ARCCISENGINE和ARCCIS SERVER。 主讲人:GIS硕士、南京路川公司专业技术开发工程师 2、如何创建,使用,编辑以及管理存储在GEODATABASE数据模型中空间数据和属性数据 主讲人:GIS硕士、南京路川公司专业技术开发工程师 3、以ARCCIS9的功能结构主线,学习利用ARCCIS进行数据输入,数据编辑,地图配标,投影转换,数据转换,数据显示(包括三维显示)与制图,数据查询与分析,数据输出等一系列操作。(以ARCCIS在农业中的应为例介绍) 主讲人:GIS硕士、南京路川公司专业技术开发工程师 4、ArcGIS上机操作 主讲人:GIS硕士、南京路川公司专业技术开发工程师 5、介绍如何使用ARCCIS9的SPATIAL ANALYST扩展模块:在栅格数据和矢量数据集成的环境下进行空间分析操作(ARCCIS在环保与流行病统计分析以及环境监测的应用为例介绍),并介绍地统计学基础以及一种先进的空间插值分析方法(以ARCCIS在生态项目中的应用为例 主讲人:GIS硕士、南京路川公司专业技术开发工程师(空调机房) 6、DEM的原理与数据采集及应用及ARCCIS9-3D分析及其显示,空间建模以及实例操作与分析(以ARCCIS在资源环境与城市规划中的应用为例介绍) 主讲人:GIS硕士、南京路川公司专业技术开发工程师(空调机房) 7、以ARCCIS在水利中的应用为例介绍操作,并介绍ARCCIS水文分析模块应用介绍,并上机 主讲人:GIS硕士、南京路川公司专业技术开发工程师(空调机房) 8、ARCCIS开发(VBA,AO+VB,Arc-Engine+C#)及ARCCIS ENGINE与AO开发上机 主讲人:GIS硕士、南京路川公司专业技术开发工程师(空调机房) 9、ArcGIS二次开发——Arc-Engine点线面属性与空间相互查询 主讲人:GIS硕士、南京路川公司专业技术开发工程师(空调机房) 10、ARCGIS高级分析功能操作应用:ArcGIS地统计分析模块应用、网络路径分析和矢量空间分析(网络追踪分析及市区选房分析为例)、空间校正、明暗等高线(以土壤项目数据为例)、噪声影响分布分析、专题图制作、三维地形分析、ArcGIS的影像配准、虚拟GIS功能介绍及数据演示操作以及ARCGIS与遥感影像的三维动态分析。 主讲人:GIS硕士、南京路川公司专业技术开发工程师 11、ArcGIS高级开发应用上机或ArcGIS与SQL Server、ArcSDE的关联或 ARCCIS多元数据分析及ARCCIS图括元素计算(尽量依学员要求介绍); (空调机房) 主讲人:南京大学规划专业博士、南京路川公司特聘高级讲师 12、ArcGIS插值算法的应用 主讲人:GIS硕士、南京路川公司专业技术开发工程师 待会聚餐 第五单元:国际3S最新技术应用--介绍ArcGIS9高级应用与river tools河流地形绘制软件及GIS最新技术在水文、地质和生态与在可持续发展中的应用及答疑:(4-6课时) 1)地统计应用与ArcGIS地统计分析;2). 遥感与GIS分析处理系统结构;3). 空间建模工具:如Matlab神经网络分析模型等,Matlab将可介绍上机详细操作;4). 土地生态评价中的应用;5). 土地利用、变化分析、中长期土地生态预测、土地利用规划等专题介绍;6)river tools河流地形软件上机操作;7)地下水资源系统模型Modflow等,Modflow将可介绍上机详细操作;8)分布式水文模型Swat等;9)数字流域以及数字水利:流域水资源规划模型及水资源管理信息系统设计及DEM与流域模拟及构建。(机房) 主讲人:南京大学与中科院大气所联合培养毕业博士、南京大学中青年优秀骨干教师 第六单元:国际GIS最新技术应用---虚拟GIS三维仿真建模专题: 1)虚拟现实GIS最新技术介绍及其开发与实例分析(以OpenGL开发的城市房地产小区环境虚拟仿真设计为例); 2)虚拟现实技术与虚拟现实GIS最新技术总体介绍:OpenGL介绍及上机练习开发(机房):三维建模;纹理制作;开发与系统集成:采用VC++、java和OpenGL以动态库或者组件的应用开发;模型库建立建模工具可以采用目前流行的工具建模软件应用,如3Dmax6.0、LightScape3.0、maya、AutoCAD2004设计开发;模型库管理与系统集成; 3)三维数字城市系统设计与开发以及基于OpenGL开发; 4)基于MultiGen Creator/Vega与3S的三维景观地理信息系统设计与制作 (1)、系统概述;(2)、基于3S、网络技术、VR技术、数据库技术、空间海量数据管理技术的集成应用;(3)、介绍用于工程设计、选线、规划、工程选址及铁路与公路交通三维仿真的应用软件的关键技术—————国际最优秀的Creator/Vega软件操作与制作应用上机(机房),将介绍如何利用可免费获得的OPENGL函数库与控件的三维地形仿真动画;利用目前最常用的实时三维建模工具与视频三维仿真、三维建模工具软件—————MultiGen Creator/Vega的三维建模优势;利用其地形模块与音效模块的功能,并通过卫星遥感影像数据处理,进行三维影像纹理制作、处理及配准。该软件可免费获得,可以与Open Flight三维建模标准格式、3DS数据、视频仿真标准格式以及多种CAD数据格式交换,可提供二次开发包接口,完全与原平台环境脱离,可与VC++无缝紧密集成。 主讲人:特邀南京理工大学博士、骨干教师 5)基于公开源码的真3D-GIS与虚拟GIS仿真建模 主讲人:GIS硕士、南京路川公司专业技术开发工程师 *第七单元:数字流域、数字水利与数字航道 1、WebGIS和Sybase与数字流域及水文水资源系统设计 2、基于WebGIS应用服务平台设计(以水利GIS项目为例) 3、流域水资源规划模型及水资源管理信息系统设计 4、数字航道系统研究设计(各子系统介绍:总体框架;逻辑模型框架图;并介绍其数据采集、网络系统及应用服务平台;介绍基于J2EE架构的数字航道本系结构;介绍数字航道应用系统建设及其规划决策分析基础设施管理系统等) 5、AO二次开发与WebGIS开发 6、上机介绍ArcIMS操作及其它安装与应用 7、大型地理信息系统软件的关键技术应用 8、基于WEBGIS应用开发介绍,并演示介绍水利水文WEBGIS系统的应用研究以及ArcIms网络GIS软件应用或基于ORACLE的GIS空间数据库设计存储和管理。 9、遥感科研方法与最新技术成果介绍—————基于3S的土壤侵蚀的定量评价; 主讲人:东南大学博士、河海大学骨干教师,曾参与省级水利决策支持系统及数字交通航道信息管理系统的研发; 主讲人:南京师范大学博士、南京师范大学优秀骨干教师,多次参与数字海洋软件开发 第八单元:国际3S最新技术应用---3S最新前沿技术在海洋、地质、石油等行业应用案例(侧重介绍设计分析方法) 1、高光谱遥感与海洋石油勘探及其中石油项目案例介绍: 2、高光谱遥感与海洋环境监测; 3、海洋遥感及海岸带调查及3S最新前沿技术在海洋调查(海岛、地质、渔业资源等调查)中的应用; 4、航道及海洋水下地形测量的关键技术与项目实例。 5、中国海洋的发展战略与数字海洋及东海与江苏沿海数字化 时间:第六天晚 6、介绍基于gis技术的海洋与海岸带信息管理系统研究与应用 主讲人:南京大学毕业博士、中科院遥感所博士后(1、2、3、4、5、6) 7、3S一体化技术在地质找矿中的最新技术应用 主讲人::GIS硕士、南京路川公司专业技术开发工程师 第九单元:国际3S最新技术应用--遥感数字图像处理及其最新技术应用高级课程 (含高光谱数据大气定标、辐射校正、自动解译等上机):(机房)(12-18课时) 1、遥感处理技术:介绍ENVI4.5遥感图像软件应用。以及遥感上机: (1)定标——大气辐射较正;(2)去除阴影;(3)Spot5与Quick BIRDS影像数据融合;(4)影象增强;(5)植被分类(介绍一种能面向对象自动分类的图象处理软件);(6)提取沙漠,水塘等特征目标点、特征目标提取;(7)影像拼接。 时间:第二天晚(空调机房) 2、介绍大范围海洋遥感制图项目数据处理与图幅拼接及专题图制作项目案例。 3、三维景观可视化:①基于遥感影像三维仿真的虚拟现实与现实虚拟及技术解析与应用和虚拟世界仿真②遥感制作DEM③三维漫游。 4、突发事件中的环境灾难的环评分析与遥感最新应用(以突发地震灾难的环评分析与环境监测为例)。 5、遥感的数据融合方法与技巧。 6、微波遥感:理论及特征和微波图像处理及其微波遥感器的成像系统。并介绍雷达SAR原理与激光遥感的原理与传感器及其应用领域以及SRTM的航天飞机生成全球三维地形图的对地观测。还介绍微波遥感应用发展与展望。 7*遥感用于城市地物目标视别及其材质鉴别(以军事项目中伪装与反伪装,目标识别为例)。 8、高光谱定量反演等最新前沿理论技术应用案例分析(图像识别与NDVI绿度指数提取) 9、*高光谱用于城市地物的分类与识别:识别分析、分清:植被、水体、煤场、道路、建筑材质及有机物;识别制图;水质分析与建模; 主讲人:南京大学毕业博士、中科院遥感所博士后 3S与ORACLE等空间地理数据库构建数字农业、 数字生态、数字城市、数字国土、数字气象、数字交通以及 遥感与数字卫生、防灾减灾、政府决策、电子政务等专题 3S技术一体化应用经验交流研讨会 (2009.6.26—30) 第一部分:基于3S的决策支持系统总体设计与基于3S的政府办公决策支持电子政务系统的构建: 1、决策支持系统介绍;2、基于3S华北平原节水农作物布局决策支持系统设计;3、多目标水利规划决策支持系统;4、基于3S防汛抗旱决策支持系统设计与开发;5、基于3S的政府办公决策支持电子政务系统的构建;6、省级电网调度决策支持系统设计与开发; 主讲人:南京大学博士生导师、教授(前苏联莫斯科大学数理逻辑专业博士,任八所大学兼职教授、中国计算机学会计算机科学专业委员会副主任委员。曾担任中石油自主开发的国家级大型石油数据库的总设计师,并多次参与多个大型省级水利决策支持系统等水利软件开发。) 第二部分:国际3S最新技术应用---3S最新技术在数字卫生、疾病与预防控制中的实施与分析应用方法(机房): 3S最新技术在疾病预防控制中项目案例介绍演示及其开发实施方法,并提供部分实验数据上机操作(根据项目数据、如何采用ArcGIS与PCI、Envi软件进行数据处理,实施操作分析的高级应用介绍,其中包含介绍:1.常用RS数据及其波段用途;2.遥感进行DEM提取;3.遥感镶嵌;4.矢量切图与几何校正;5.遥感决策树方法与应用;6.遥感绿度指数提取方法;7.遥感数据处理流程;8.SPOT影像数据介绍及其应用。 主讲人:特邀原南京大学毕业博士、中国科学院遥感所博士后,国家卫生部国家重大传染病课题组3S应用研究专家。 第三部分:国际3S最新技术应用---3S技术与数字农业及数字生态 1、3S一体化技术在农业气象与农业食品安全监测中应用 2、大尺度利用遥感监测土地退化 3、利用遥感监测全球变化 4、A).3S在农情监测与土地利用中的最新技术运用 B)。在国土资源管理电子政务中3S的应用及其案例 主讲人:中科院地理所研究员、博士、留德访问学者 5、国际3S最新技术应用--3S技术在信息农业中的进展与展望 1)研究意义与国内外动态;2)3S技术集成方法、特点与功能;3)农业资源遥感监测与评估;4)3S在农业区划中的运用;5)利用3S技术进行作物长势监测与估产;6)农业环境变化遥感监测;7)农业生产资料管理;8)农业气候资源管理;9)全球变化对农业资源与产量影响监测;10)目前3S在信息农业中的问题;11)3S技术发展趋势与前景展望——“5S”一体化应用(RS-GIS-ES-IDSS) 6、遥感监测在城市园林绿化和草地生态与农业生态中的最新研究 A).目前国际上开展草原农业资源与生态环境监测的国际组织和国际计划;B).国际上常见遥感技术反演生物物理学参数重点介绍;C).农业、生态所主要利用的遥感信息;D)3S在农业资源估测中的应用;G).3S在农田土壤水分动态监测中应用及其应用结果与分析;H)3S在土地覆盖与土地利用中应用;I)利用高光谱遥感在苏州进行的作物估产;J)与有关组织合作,采用对地观测系统进行国外草地资源与生产力调查。 7、遥感监测介绍: A)环境污染和毒理状况遥感监测;B)水资源管理遥感监测;C)土地利用变化遥感监测;D)生物多样性丧失监测;E)气候变化监测 8、综合生态管理系统的设计极其项目介绍 主讲人:南京大学博士生导师、教授(原北京大学生态专业博士、兰州大学生态专业博士博士后、新疆农业大学校长助理、草原系系主任、日晒北海道[大学遥感专业博士后) *第四部分:国际3S最新技术应用--定量遥感内容:高光谱和多光谱遥感及其应用 主讲人:南京大学博士生导师、教授 第五部分:国际3S最新技术应用--热红外遥感:理论、方法和应用 一、热红外遥感基理论方法 二、基于MODIS的洪涝灾害遥感监测 三、基于MODIS的旱灾遥感监测 主讲人:南京大学博士 第六部分:地图数据处理、空间数据库设计及其GIS算法程序设计介应用开发工程,并介绍VC++开发GIS案例 1、地图数据处理与地图数据库设计(数字地图处理与地图数据设计:地图数据的数据模型;空间数据库设计;地图数据库系统的构成与功能;地图数字化的实施;如何进行数据检测与数据处理入库,并提高数据精度) 2、GIS设计方法(设计步骤;系统结构设计;空间数据库模型;功能描述) 3、GIS工程案例和等值线追踪 1)电力选线GIS软件演示及开发应用方法介绍 2)水利工程GIS软件演示及开发应用方法介绍 3)用于水利工程与水土保持项目的淤地坝工程GIS 软件演示与开发应用方法介绍 4)公路交通GIS软件演示及开发应用方法介绍 5)交通运输决策支持GIS软件演示,并介绍虚拟环境GIS运用 6)三维地形飞行浏览软件演示,并介绍虚拟环境GIS运用 4、基于Vc++开发的GIS空间分析算法介绍及程序设计 1)网络分析方法;2)网络模型设计思想;3)DEM的特点及应用及其分析中的重要算法 主讲人:南京大学博士生导师、教授、路川公司总工程师/解放军理工大学博士 *第七部分:Oracle9i及其空间数据库培训 (待定,此内容征求学员意见后再定。如无人选择,将不做安排;如感性趣的人多,可此单项时间3--7天(总课时不变);也可据所需选择的人数考虑同时进行,有关事宜另商定) 1)数据库Oracle9i基础;2)Oracle9i的体系结构;包括:ORACLE数据库的安装与配置;管理ORACLE网络,服务器与客户端配置;安全管理、用户及其权限;ORACLE日志系统的配置与管理;数据库备份、故障处理与数据恢复;ORACLE性能监控与系统优化,并讲解Access、SQL Server、Sybase、my SQL数据库(可免费获得的)等问题解决方案。根据老师的备课安排,将尽可能考虑安排GIS Oracle空间数据库下列有关内容:1)Oracle 10g空间操作;2)ArcGIS的ArcSDE与Oracle 10g的集成应用:ArcSDE 9.1 for Oracle 10g与Oracle 10g GeoRaster影像数据管理;3)基于Oracle 10g Spatial的数据存储管理及关键技术;4)基于Orade的空间数据库存储与管理。 主讲人:南京大学博士生导师、教授 主讲人:东南大学博士、河海大学骨干教师,曾参与省级水利决策支持系统及数字交通航道信息管理系统的研发; 主讲人:南京大学博士、南京师范大学优秀骨干教师 第八部分:国际3S最新技术应用---<>—— 1、3S技术与Arcgis在规划与数字城市中应用方法与项目案例 1)GIS在南京高层建筑优化中的应用;2)Arcgis的拓扑关系在地籍数据处理中的应用;3)GIS在历史文化遗产保护中的应用(历史街区与历史文化遗产保护);4)基于3S景观格局研究以及国外最先进的软件应用介绍;5)GIS技术的生态敏感性评价中的应用;6)ARCCIS用SURFER增强,ARCgis的三维显示;7)高分辨率的影像数据融合及其城市规划中的应用;8)ARCCIS在地铁选址中的应用;9)ARCCIS在森林工程中的应用并介绍其中大型城市中心城区社会空间结构极其演化研究;12)用GIS对某工程项目在国家级凤景区建设对景观影响的评价 主讲人:联合国教科文组织GIS培训中心GIS与RS博士后 2、ArcGIS9.2与遥感综合应用专题(国土资源与城市规划为例介绍): 主讲人:南京大学规划专业博士 第八部分:3S技术在气象领域的专题应用研讨: 主讲人:南京信息工程大学遥感专业博士生导师、教授 第九部分:GIS地理数据建库:(机房):1)GIS的地理数据库建库:GIS属性数据编辑与编码;地图库管理;图幅接边; 主讲人::GIS硕士、南京路川公司专业技术开发工程师 上课时间:上午、下午及晚上每天8.5--9.5小时。 以上研讨会内容根据报名代表的需要增减 对参加本次3S高级研修班的学员代表以上研讨会费用全免,自主选修!上述内容根据报名和需要增加或简略 6月29日—30日组织去皖南研讨实习,考察3S在黄山或苏南旅游风景区规划及历史文化遗产保护中的应用单位。个人自愿参加,实习费用少部分另收。
c#学习笔记(1) 51099在线学习网发布 文章来源:网络收集 发布时间:2006-05-25 字体: [大 中 小] 51099在线学习网 http://www.51099.com 1, 结构(struct) 与 类(class) [attributes] [modifiers] struct identifier [:interfaces] body [;] 结构与类很相似,都表示可以包含数据成员和函数成员的数据结构。与类不同的是,结构是值类型并且不需要堆分配。结构类型的变量直接包含结构的数据,而类类型的变量包含对数据的引用(该变量称为对象)。 struct 类型适合表示如点、矩形和颜色这样的轻量对象。尽管可能将一个点表示为类,但结构在某些方案中更有效。在一些情况下,结构的成本较低。例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。结构可以声明构造函数,但它们必须带参数。声明结构的默认(无参数)构造函数是错误的。总是提供默认构造函数以将结构成员初始化为它们的默认值。在结构中初始化实例字段是错误的。在类中,必须初始化实例对象. 使用 new 运算符创建结构对象时,将创建该结构对象,并且调用适当的构造函数。与类不同的是,结构的实例化可以不使用 new 运算符。如果不使用 new,那么在初始化所有字段之前,字段将保持未赋值状态且对象不可用。对于结构,不像类那样存在继承。一个结构不能从另一个结构或类继承,而且不能作为一个类的基。但是,结构从基类 Object 继承。结构可实现接口,其方式同类完全一样。 [c ] 与 C 不同,无法使用 struct 关键字声明类。在 C# 中,类与结构在语义上是不同的。结构是值类型,而类是引用类型。 2, 装箱和拆箱(取消装箱) 装箱是值类型到 object 类型或到该值类型所实现的任何接口类型的隐式转换。将一个值的值装箱会分配一个对象实例并将该值复制到新的对象中。关键字 object. 取消装箱是从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换。取消装箱操作包括:检查对象实例,确保它是给定值类型的一个装箱值。将该值从实例复制到值类型变量中。 例: int i = 123; // A value type object box = i; // Boxing int j = (int)box; // Unboxing 装箱转换 取消装箱 3 , 隐式和显式 下列转换属于隐式转换:例:object o=i; 标识转换。 隐式数值转换。 隐式枚举转换。 隐式引用转换。 装箱转换。 隐式常数表达式转换。 用户定义的隐式转换。 下列转换属于显式转换: object 0=(object)i; 所有隐式转换。 显式数值转换。 显式枚举转换。 显式引用转换。 显式接口转换。 取消装箱转换。 用户定义的显式转换 4, delegate(委托) delegate void D(int x); class C{ public static void M1(int i) { /* ... */ } public static void M2(int i) { /* ... */ }} class{…….D cd1 = new D(C.M1);………….} 委托是一个数据结构,该数据结构引用一个静态方法,或引用一个对象实例和该对象的实例方法。在 C 或 C 中与委托最接近的是函数指针,但函数指针只能引用静态函数,而委托可以同时引用静态方法和实例方法。在后一种情况中,委托不仅存储对方法入口点的引用,还存储对调用其方法的对象的引用。与 C 函数指针不同,委托是完全面对对象的;与指向成员函数的 C 指针不同,委托同时封装对象实例和方法。委托声明定义从类 System.Delegate 派生的类。委托实例封装一个或多个方法,每个方法都被称为可调用实体。对于实例方法,可调用实体由一个实例和该实例上的方法组成。对于静态方法,可调用实体仅由一个方法组成。给定委托实例和适当的参数集,便可以用该参数集调用此委托实例的所有方法。委托实例的一个有趣和有用的属性是它不了解或不关心它所封装的方法的类;真正重要的只是方法要与委托的类型兼容, 这使委托非常适合“匿名”调用。可选的形参表指定委托的参数,而返回类型则指示委托的返回类型。如果下面两个条件都为真,则方法和委托类型是兼容的:(兼容的概念就是可以用此声明的委托对方法进行委托). 1它们具有相同的参数数目,并且类型相同,顺序相同,参数修饰符也相同。 2它们的返回类型相同。 C# 中的委托类型是名称等效的,而不是结构等效的。(但是请注意:两个不同但结构上等效的委托类型的实例可能会比较为相等),准确地说,两个具有相同参数列表、签名和返回类型的不同的委托类型被认为是不同的委托类型。委托实例所封装的方法集合称为调用列表。 5, interface(接口) [attributes] [modifiers] interface identifier [:base-list] {interface-body}[;] 一个接口定义一个协定。实现接口的类或结构必须遵守其协定。接口可以从多个基接口继承,而类或结构可以实现多个接口。接口可以包含方法、属性、事件和索引器。接口本身不提供它所定义的成员的实现。接口只指定实现该接口的类或接口必须提供的成员。接口可以是命名空间或类的成员,并且可以包含下列成员的签名:方法属性 索引器. 一个接口可从一个或多个基接口继承。接口可由类实现。实现的接口的标识符出现在类的基列表中。被继承的接口称为该接口的显式基接口。当接口具有一个或多个显式基接口时,在该接口声明中,接口标识符后跟一个冒号以及由逗号分隔的基接口标识符列表。接口的基接口是显式基接口及其基接口。换言之,基接口集是显式基接口、它们的显式基接口(依此类推)的完全可传递的闭包。接口继承其基接口的所有成员。接口成员是通过 I.M 和 I[A] 形式的成员访问和索引访问表达式访问的,其中 I 是接口类型的实例,M 是该接口类型的方法、属性或事件,A 是索引器参数列表。接口可以由类和结构实现。为了指示类或结构实现接口,在该类或结构的基类列表中包含了接口标识符。在实现类或结构中定位接口成员的实现的过程称为接口映射。 6,object object 类类型是所有其他类型的最终基类。C# 中的每种类型都是直接或间接从 object 类类型派生的。可以把任何类型的数值给object类型. 7,string类型 string 类的实例表示 Unicode 字符串。尽管 string 是引用类型,但相等运算符(== 和 !=)被定义为比较 string 对象(而不是引用)的“值”(7.9.7 字符串相等运算符)。这使得对字符串相等性的测试更为直观。字符串为 string 类型并可写成两种形式,即用引号引起来和用 @ 引起来。用引号引起来的字符串括在双引号 (") 内, 并且可以包含包括换码序列在内的任何字符用 @ 引起来的字符串以 @ 开头,并用双引号引起来。用 @ 引起来的字符串以 @ 开头,并用双引号引起来。若要在一个用 @ 引起来的字符串中包括一个双引号,请使用两对双引号:@ 符号的另一种用法是使用碰巧成为 C# 关键字的被引用的 (/reference) 标识符。 8, 修饰符 修饰符作用 访问修饰符 public private internal protected 指定声明的类型和类型成员的可访问性。 访问不受限制 只有包含该类的成员的类可以访问 只有当前工程可以访问 只有包含该成员的类和继承的类可以访问 abstract指示某个类只能是其他类的基类。 const指定无法修改字段或局部变量的值。 event声明一个事件。 extern指示外部实现此方法。 override提供从基类继承的虚拟成员的新实现。 readonly声明一个字段,该字段只能赋值为该声明的一部分或者在同一类的构造函数中。 sealed指定类不能被继承。 static声明属于类型本身而不是属于特定对象的成员。 unsafe声明不安全的上下文。 virtual在派生类中声明其实现可由重写成员更改的方法或访问器。 volatile指示字段可由操作系统、硬件或并发执行的线程等在程序中进行修改。 9,语句 语句是程序指令。除非特别说明,语句都按顺序执行。C# 具有下列类别的语句。 类别C# 关键字 选择语句if, else, switch, case 迭代语句do, for, foreach, in, while 跳转语句break, continue, default, goto, return 异常处理语句throw, try-catch, try-finally Checked 和 Uncheckedchecked, unchecked fixed 语句Fixed lock 语句Lock (1) foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。此语句的形式如下: foreach (type identifier in expression) statement 若要循环访问集合,集合必须满足特定的要求。集合类型: 必须是 interface、class 或 struct。 必须包括返回类型的名为 GetEnumerator 的实例方法,例如 Enumerator(详见下文)。 Enumerator 类型(类或结构)必须包含: 一个名为 Current 的属性,它返回 ItemType 或者可以转换为此类型的类型。属性访问器返回集合的当前元素。 · 一个名为 MoveNext 的 bool 方法,它递增项计数器并在集合中存在更多项时返回 true。 有三种使用集合的方法: 使用上述指导创建一个集合。此集合只能用于 C# 程序。 1. 使用上述指导创建一个一般集合,另外实现 IEnumerable 接口。此集合可用于其他语言(如 Visual Basic)。 2. 在集合类中使用一个预定义的集合。 (2) throw 语句用于发出在程序执行期间出现反常情况(异常)的信号。throw 语句的形式为: throw [expression]; expression :异常对象。当在 catch 子句中再次引发当前异常对象时,它被省略。 (3)try –catch语句 try-catch 语句由一个 try 块和其后所跟的一个或多个 catch 子句(为不同的异常指定处理程序)构成。try-catch 语句采用下列形式之一: try try-block catch (exception-declaration-1) catch-block-1 catch (exception-declaration-2) catch-block-2 ... try try-block catch catch-block (4) fixed 防止变量被垃圾回收器重定位。 (5) lock lock 关键字将某个语句块标记为临界区。 6. 方法参数 如果为没有 ref 或 out 的方法声明一个参数,则此参数可以具有关联的值。可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值。通过使用方法参数关键字,可以更改这种行为。如果没有ref,out则默认为值传递,虽然可以在方法中修改这个参数的值,但是修改后的值不会还会到调用该方法的程序中. params :params 关键字可以指定在参数数目可变处采用参数的方法参数 ref :引用传递 out : 7, namespace(名字空间) C#学习笔记(2)【大 中 小】【打印】【加入收藏】【关闭】 【收藏到新浪ViVi】【收藏到365KEY】 浏览字号:日期:2004-07-11 人气:8092 出处: write by cash(天下第七) 2002.01.20 版权所有,翻录不究 cashcao@msn.com 选择 我身上携带着精神、信仰、灵魂 思想、欲望、怪癖、邪念、狐臭 它们寄生于我身体的家      我必须平等对待我的每一位客人 -----------伊沙:《原则》 我的名字是cash,所以我很功利主义; 我的星像是Leo,所以我很大男人主义; 我的语言是C#,所以我有点儿拿不定主义。 /* 你能看得出来,这不是一篇正规的技术文章,所以若你不小心从里边读到了一个爱情故事,可不要奇怪。有很多人用程序来表述爱情,在其中我能看到有Money,有Girl,有一些还涉及到Sex,但是我没有找到Love,我始终相信这世上有一种力量直接来自于爱情,到现在仍然相信。*/ C#(读作C sharp),是Microsoft公司新推出的(?)专为.NET设计的一门语言,号称“C/C++家族中第一种面向组件的语言”。很多人觉得它应该像C或者C++,但事实上它更像是java的一个clone,所以作为入门,读一下清华大学出版社出版的《Java 语言与面向对象程序设计》可能会对你有所帮助。本文假定你具备一切学习此语言所需的知识,没有也不要紧,我会在文中尽量列出相关的link,鉴于互联网瞬息万变的特点,若某一链接不可用,请自行至Google查询。 如前所述,我是一个狮子座男人,一度我认为学习Java会使我看起来与众不同,可是几个月以后我放弃了这个选择,我看了论坛里关于这两种语言孰优孰劣的讨论,最终选择了C#,请不要问我为何做出这样的选择,很多人认为中文是世界上最美丽的语言,可是华人世界以外有谁在讲汉语? 另外我发现论坛上学习Java的人都非常的有个性,当有人问起学习哪种语言更好时,他会打出几百个“JAVA”来,填满整个屏幕,也不说是为了什么。我觉得这样做未免有些太霸道了,如果你说这叫偏执狂我也不反对,虽然我是狮子座,可也不想被人这样看。 在C#刚刚推出的时候,大多数的程序员都不免吼上两句——不是因为高兴,而是因为又多了一种语言。他们觉得现在的语言太多了,没有必要再多出一种来添乱子。但是当他们看完C#的文档后又开始高兴起来,因为C#是如此简单:事实上,简单正是C#最大的特点。除此之外,它还具有现代、面向对象、类型安全、版本控制、兼容、灵活等特点。详细介绍请参阅rainbow(一个长着胡子的彩虹)翻译的<> ,前几章非常的有趣。 看完了前面几段,我的朋友提出了不同的意见:C#不是Java的Clone,它只是长得有些像Java而已,其实面向对象、中间语言什么的也不是什么新玩意儿,非Sun独创,有文为证:华山论剑:C#对Java。另外他对我上一集中说Microsoft越来越不要脸也极为生气,因为相比之下,Sun也不怎么样,微软已经将C#提交设在日内瓦的ECMA(European Computer Manufacturers' Association,国际标准化机构欧洲电子计算机工业会)并获得批准。Sun就从来没有将它的Java交给过ECMA,以至于正当Microsoft尽力在Visual J++基础上拓展Java功能,并使之与Windows操作系统紧密结合在一起的时候,Sun公司对Microsoft提出了法律诉讼,控告Microsoft违反了许可证协议中的条款,最终的结果是Microsoft公司不得不停止其Visual J++产品的开发。(Microsoft后来在完全面向.NET框架的开发语言集中加入了Visual J#.NET,算是对Java语言用户的一种照顾。) 有人说,选择C#意味着选择MS(在中国的程序员当中,这并不是件值得自豪的事。如果你还不能理解这种心情,可以试想一下有人很认真地对你讲他喜欢听毛宁的歌)。事实上,通过ECMA标准的C#可以由任何人在任何平台上设计出它的开发程序。比如Ximian公司的Mono工程,可以使开发者能够编写同时在Windows和Linux上运行的.Net程序,这些程序甚至还可能在其它非Windows的操作系统上运行,比方Unix。这一段时间我正在Linux下试验这个工程,遗憾的是,还没有成功。 一位师兄对此种比较颇为不屑,他认为只要选一种语言去学就好了,“重要的是你要用它,并且做的比别人好。”这让我想起来一直都很喜欢的那个歌:把你自己该做的那份工作,做得比别人出色。年轻的时候我老是用这句话自勉…… 写到这里我发现这个故事还没有提到桐桐,这篇东西是为她而作。我早在十八个月以前就答应了她,我答应了她很多事,但还没有完成一件,现在我要一件一件的去实现。所以这个故事还应该有个更好的开始。 2000年6月我大学毕业,从北京回到了石家庄,到一家什么都做的公司上班(做一个网站),最开始制作界面,然后用asp编程,如果你用过asp就会知道,这是个很无聊的工种。在此之前我在一家报社实习,为他们的网站做设计和动画。在那里我认识了桐桐。 那时候她还在上学。 >>>未完,待续... C#学习笔记(3)【大 中 小】【打印】【加入收藏】【关闭】 【收藏到新浪ViVi】【收藏到365KEY】 浏览字号:日期:2004-07-11 人气:6938 出处: 开始 2000年6月我大学毕业,从北京回到了石家庄,正式开始了我的职业生涯。如前所述,一开始我使用的语言是asp,我一直认为这不能称之为编程,因为asp不是一种编程语言,把它叫做动态网页实现技术可能更好。另外,asp很简单,并且,简单就是它全部的特点--这使得它很容易就能学会(在后来的工作中,我接触到许多应聘的学生,他们都告诉我自己精通asp语言)。虽然学习起来很简单,但是在使用起来却不得不多费点儿劲儿:我还能记得自己晚上一个人在办公室用VI一步一步调试某一个网页的情景,每当遇到挫折失败的时候,总是想起给桐桐打一个电话,听听她的声音。如你所知,我总是遇到困难。 现在你能看出来,我不是高手,只是一个低手... 2000年6月我大学毕业,从北京回到了石家庄,同一时间(美国西部时间6月22日上午),微软公司在位于美国西雅图郊外的总部内邀请新闻记者、新闻分析家等约400人,举行了新闻发布会“Forum2000”,宣布正式推出.Net计划。这个计划中包括了新的网络计算平台(.Net Framework)、新的语言(C#)、新的开发工具(Visual Studio.Net)以及asp的下一个版本ASP.NET,后者最开始被称为ASP+。那时候我学习的主要兴趣就在ASP.NET上,并且通过这个窗口开始了解Microsoft.Net的各个方面。 ASP.NET仍然不能称之为一种编程语言,但是现在可以把它看作是一个创建、管理、部署Web应用程序的平台。可以使用任何.Net语言在这个平台上开发互联网应用程序,这其中当然包括C#。它们之间的关系可以从下图中看出: 这就是著名的.Net 平台结构图,从这个图上可以看到,ASP.NET、Windows Forms和VS.Net都不过是.Net开发平台的一部分,用于.Net应用程序的开发及展示。.Net 平台的核心技术为:通用语言运行时(CLR:Common Language Runtime)、基类库(Base Class Library)、.Net语言及Visual Studio.Net。 从这个图上也可以看出,.Net Framework是架构在Windows平台上的一个虚拟的运行平台,你可以想象将最下层的Windows换作其它的操作系统,比如说Linux,一样可以实现使用符合了CLS(Common Language Specification,通用语言规范)的.Net语言(VB.Net、C#、JScript.Net等)来创建ASP.NET或Windows Forms(可能会叫做Linux Forms)应用程序的功能,这其实就是我们前面介绍的Mono计划所要实现的功能。所以可以这么认为,理论上,C#是一种可以跨平台的语言,这很像Java,另一个比较像Java的地方是,C#也是一种(特殊意义上的)解释性的语言。同Java一样,C#编写的程序代码也是先通过C#编译器编译为一种特殊的字节代码(中间语言,Microsoft Intermediate Language,MSIL),运行的时候再经由特定的编译器(JIT编译器,Just In Time,JITer)编译为机器代码以供操作系统执行。 不仅是C#语言,所有.Net语言(将会包括我们常用的几十种现代的编程语言)都可以编写面向CLR的程序代码,这种代码在.Net中被称为托管代码(Managed Code),所有的Managed Code都直接运行在CLR上,具有与平台无关的特性。 解释性的语言很安全,并且可以通过它的运行平台为其赋予更多的功能,比如自动内存管理、异常处理等。事实上,C#语言的许多特点都是由CLR提供的,下面的CLR结构图说明了这一点。 可以看到,类型安全(Type Checker)、垃圾回收(Garbage Collector)、异常处理(Exception Manager)、向下兼容(COM Marshaler)、多线程支持(Thread Support)这些C#的特点都是由CLR来提供的。CLR最早被称为下一代Windows服务运行时(NGWS Runtime),是直接建立在操作系统层上的一个虚拟的运行环境,主要的功能是管理代码的运行。在.Net 平台结构图中,CLR的上面是.Net的基类库(Base Class Library,BCL),这组基类库包括了从基本输入输出到数据访问等各方面,提供了一个统一的面向对象的、层次化的、可扩展的编程接口。从.Net 平台结构图中也可以看到,基类库可以被各种语言调用和扩展,也就是说,不管是C#、VB.NET还是VC++.NET,都可以自由地调用.Net的基类库。事实上, C#并没有属于自己的类库,它所使用的编程接口就是.Net提供的基类库。所以,在决定使用C#时,真正需要费工夫学习的其实是.NET框架的基类库:C#自身只有区区77个关键词,而且其语法对许多程序员来说都是他们非常熟悉的。BCL则相反,它包含了超过4500个以上的类和无数的方法、属性,在你的C# 程序中随时都可能会用到它来完成自己的任务。 很多人都思考过应如何开始学习一种新的语言,对于一个有经验的编程人员来讲,这确非难事。但是对于一个对编写代码一无所知的人而言,如果你是以C#开始你的编程之旅的,数目繁多的概念及新名词可能会令你有些不知所措。这时候请注意你的学习顺序,任何一种编程语言的学习都是按照运行平台、语法、基类库直至各方面的应用这一顺序来进行的,但是在实际的学习中,它们之间并不是孤立的。推荐的方法是:对运行平台和语法有了一个整体的认识后,在应用中学习各种基类库的用法。鉴于C#这一语言的特殊性,全面了解它的运行平台(.Net Framework)必会使你的学习事半功倍。所以请记住上面提到的两个图,在以后的学习中,虽然可能不会明确的涉及到它们,但是在整个C#的学习过程中,它们却是无处不在的。 还有一个很重要的概念需要你明白,这就是公共语言架构(Common Language Infrastructure ,CLI)。CLI是CLR的一个子集,也就是.NET中最终对编译成MSIL代码的应用程序的运行环境进行管理的那一部分。在CLR结构图中CLI位于下半部分,主要包括类加载器(Class Loader)、实时编译器(IL To Native Compilers)和一个运行时环境的垃圾收集器(Garbage Collector)。CLI是.Net和CLR的灵魂,CLI为IL代码提供运行的环境,你可以将使用任何语言编写的代码通过其特定的编译器转换为MSIL代码之后运行其上,甚至还可以自己写MSIL代码在CLI上面运行。如你所知,欧洲计算机制造商协会(ECMA)已经于2001年10月13日批准C#语言规范(ECMA-334)成为一种新诞生的计算机产业标准。同时国际标准组织ISO也同意该标准进入该组织的审批阶段。并且,作为.Net与CLR的核心部分,CLI与C#也同时获得了ECMA的批准(ECMA-335)。拥有了C#与CLI这两项标准,你可以自己写出能够运行于任何操作系统上的.Net平台(只要你愿意)。如前所述,著名的Mono项目就是这么干的,Mono项目包括三个核心的部分:一个C#语言的编译器,一个CLI和一个类库。在Java的世界中,这项工作是由SUN公司完成的,SUN针对不同的操作系统开发出相应的Java虚拟机以便让一个由Java开发的应用程序运行在不同的操作系统上,但是迄今为止还没听说过微软有这方面打算(为用户提供非Windows系统的.Net平台)。 2000年的6月还有很多事情发生,2000年的6月我在学校做毕设,晚上就跑到系试验室看欧锦赛,我很喜欢的坎普君(Bergkamp)大放异彩,帮助荷兰队6比1大胜南斯拉夫,米哈伊洛维奇 (Mihajlovic)在比赛最后莫名的笑容永远留在了我的心中。说实话,那时候只顾着看EURO2000,可没管什么.Net、.Not。另外,离别的愁绪围绕在每个人的周围,广播里开始反反复复播放一些古老的歌曲,不知道为什么,恋曲1980却是那时候的最爱。 后来,我们都毕了业。如你所知,我离开了北京。 >>>未完,待续... C#学习笔记(4)【大 中 小】【打印】【加入收藏】【关闭】 【收藏到新浪ViVi】【收藏到365KEY】 浏览字号:日期:2004-07-11 人气:8360 出处: 约定 //一个典型的用C#写就的HelloWorld程序 using System; class HelloWorld { public static void Main() { Console.WriteLine("Hello World !"); } } 我忘记自己第一次用C#向世界问好是在什么时候了,不过可以肯定我已经打过呼了,那时候用的是beta1版。现在你可以到http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/000/976/msdncompositedoc.xml去下载.Net Framework Software Development Kit (SDK)的正式版,其中包括了前面提到的.NET Framework, 以及书写、编译、测试、开发 .NET Framework 应用程序所需要的一切——文档、例子、命令行工具和编译器。安装之后就可以开发和运行C#程序了,不过一般的建议是:一定要看.Net Framework SDK中所带的文档与例子,如果能照着例子再写一遍那就再好不过了。 当我第一次看到C#代码的时候,同样认为它很像Java,一个形象的比喻是:C#和Java是一对双胞胎,从语法的角度来讲,它们共同的父亲当然非C++莫属(请注意,不是VC++)。对于一个学过Java语言的人来说(比如说在下),要理解这段代码实在是太容易了:第一行当然是注释了,C#支持两种注释方法,以"//"开始的单行注释和以"/*"、"*/"配对使用的多行注释。第二行(using System)导入了System这个包(在C#中被称之为名字空间,Namespace),可以让我们方便的调用Microsoft.Net基类库System中的所有类,在此例中使用了System名字空间中的"Console"类,用于在控制台窗口输出程序运行结果。如前所述,C#并没有内置的输入输出语句,所有需实现的功能都完全来自于.Net基类库。这一句的作用就是告诉编译器去哪里寻找Console类以便调用。 接下来声明了一个类HelloWorld,这个类中有一个特殊的方法Main(),每个可执行文件都需要有一个入口点,在C#中,这个入口点就是Main()方法,此方法将在程序启动时被调用。在这个方法中,Console是在命名空间System下的一个类,它表示的是控制台。这里调用其静态方法WriteLine()。如同C++一样,静态方法允许我们直接作用于类而非实例对象。WriteLine()函数接受字符串类型的参数"Hello World !",并把它送入控制台显示。如前所述,C#没有自己的类库,它直接获取Microsoft.NET系统类库。在这里正是通过获取Microsoft.NET系统类库中的System.Console.WriteLine()来完成我们想要的控制台输出操作。现在使用记事本来编写这段代码,并将它的文件名保存为HelloWorld.cs,其中".cs"是C#源代码文件的扩展名。然后在配置好C#编译器的命令行环境里键入"csc HelloWorld.cs"编译文件。可以看到编译输出文件HelloWorld.exe。键入HelloWorld执行这个文件可得到下面的输出: Hello World ! 这就是第一个C#的程序,我们使用csc.exe来编译它,对于这个C#编译器,有如下说明: 1. 它是随.Net Framework SDK免费发布的,可以在DOS命令行被调用 2. 它的使用方法如下:   csc SourceFile.cs /out:TargetFile.exe   如果不使用输出参数指定目标文件名,则默认输出为源文件名 3. 一般情况下,它在系统文件夹(Windows或WinNT)下的Microsoft.NET\Framework\v1.0.3705文件夹内 4. 如果你安装了VS.Net,从Visual Studio.NET Tools项目组中可以激活Visual Studio.NET Command Prompt窗口,这是一个配置好C#编译器的命令行环境 5. 使用csc.exe编译后的C#程序并不是机器代码(尽管拥有.exe的后缀名)。如前所述,C#程序只是被编译成了MSIL代码。 C#编译器(csc.exe)编译后的文件并不是一个严格意义上的可执行文件(并不包含机器代码),而是一个PE(portable executable)格式的文件,虽然它同样拥有.exe的后缀名。在这个PE文件中也不仅仅只包含中间语言,在其中还包含有元数据(Metadata)和一个由编译器添加的目标平台的标准可执行文件头。 中间语言,确切地说,应该称为微软中间语言(Microsoft Intermediate Language,MSIL),是由微软定义的一种界于源代码与机器码之间的一种语言。在CLR中,它首先会由特定的语言编译器将其包装成exe格式的伪代码(P代码)。再由特定的编译器将其转换为本地代码执行。对于微软中间语言,一个形象的比喻是:如果CLR是操作系统的话,那么微软中间语言就是.Net平台上的ASM汇编语言。它比大多数 CPU 机器语言更为高级,比如它可以理解对象类型,并具有创建和初始化对象、调用关于对象的虚拟方法以及直接操作处理数组元素的指令。它甚至还具有发现和捕获异常情况用于错误处理的指令。 元数据(Metadata)和MSIL共同存在于编译好的程序文件之中,描述了此程序包含的类型的定义、各种类型的签名及其它一些数据,相当于以前的类型库(Type Library),同时也记载了此程序所引用到的其它外部类。元数据的主要作用是将与代码有关的更多的信息提供给CLR。基本上,元数据用于如下各项任务:用于表示CLR用途的信息,如定位和装载类、内存中这些类的实例、解决调用、翻译IL为原始码、加强安全并设置运行时上下文边界。 一个由C#语言写就的源码文件在CLR环境中执行的过程是这样的:首先由C#编译器编译成包含了中间语言和元数据的PE文件,当我们在系统中调用这个文件时,CLR会启动一个编译器再将这个PE文件包含的MSIL代码转换成为托管的本地代码。转换MSIL代码为本地码的这个编译器就叫做JIT编译器(Just In Time,JITer)。请注意它并不是前面我们用到的C#编译器。 现在让我们看看JIT编译器是如何工作的:当PE文件被调用时,JIE编译器将其分解为MSIL和元数据,这时候MSIL并不直接让.Net去调用本地的系统接口,而是指定.Net系统去编译连接那些需要的CLR DLL,编译出百分之百的本地代码。整个的过程如下: 当一个类型被装载时,装载器创建一个存根(stub),并使它与类型的每一个方法相连接。当一个方法第一次被调用时,存根把控制交给JITer。JITer把MSIL编译为本地代码,并且把存根指针指向缓冲本地代码。已经被JITer编译的方法随后就直接调用已经产生的本地代码,减少了JITer编译和执行代码的时间。可以看到,JITer并不会一次性的将所有的MSIL都编译为本地代码,而是在我们需要时才即时编译,也就是说,有些代码可能从来都没有被编译过。很明显这样做的好处是既保证了运行期的安全性,又不会损失太多的效率。 这就是一个C#程序执行时的步骤。整个过程是这样的: 1) 由C#编译器将源代码编译为中间语言 2) 装入托管代码,这包括解决内存中的名字、表层类(laying out classes ),并且创建JIT编译所必需的存根。通过执行经常性校验,包括加强一些访问规则,类装载器同样也增强了安全性 3) 用JITer将 IL转换成原始代码 4) 装入元数据、校验类型安全和方法的完整性 5) 垃圾收集(GC)和异常处理 6) 描绘和查错服务 7) 管理线程和上下文以及远程管理。 不必全部理解这些概念,在以后的学习中将会一一的体会到它们的精彩,现在你需要做的(如果你还没这么干过的话),是找到ildasm.exe这个文件(一般情况下,它会和csc.exe在同一文件夹中)。顾名思义,这是一个MSIL的反汇编程序(.Net Framework IL Disassembler),在命令行窗口下输入ildasm helloworld.exe /out=helloworld.il就会得到两个文件:helloworld.il和helloworld.res。前者包括了反编译出来的元数据和MSIL代码,后者则是提取的资源文件。用记事本打开helloworld.il文件,可以看到它定义并实现了一个继承自System.Object 的HelloWorld类及两个函数:Main()和.ctor()。其中.ctor()是HelloWorld类的构造函数。在这个文件中还包括元数据和其它有关的信息。如果你觉得这样不够直观的话,可以在命令行窗口键入ildasm helloworld.exe,这样就可以启动ILDASM 窗口并向我们展示出反编译后的helloworld.exe文件。 请仔细将这些代码看上几遍,现在理解全部这些内容并不重要,但是希望你也能看一下文件中的元数据,这其中包含所有 Runtime 和编译器需要的有关程序集及其模块、类型和成员(如方法)的信息。 行文至此,我想谈一下学习。如你所知,在我们所处的环境中,学习总意味着是一个痛苦的过程,学习一种新知识好像总是为了自己的某种需求,我并不认为这样有什么不对,但我总觉着,除了拿到高薪和受人尊敬外,学习还应该带给我们更多的快乐。有些知识我们现在也许用不着,比如前面谈到的一些内容,但是我们了解了,就是一件值得高兴的事。 智慧本身就是好的,有一天我们都会死去,追求智慧的道路还会有人在走着。死掉以后的事我看不到。但在我活着的时候,想到这件事,心里就高兴。 ——王小波 今天是2002年4月7号,再过三天就是王小波的忌日了,不知道有多少人还会记得这个日子,还会记得这个人。本文的最后,我向大家推荐小波的作品——每一个心智成熟的人都应该读一读小波的文字。在他的杂文随笔集《沉默的大多数》中有一句话谈到了他作为程序员的一面: “今晚不把这段C++调通,老子就不睡了!” >>>未完,待续...

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧