源代码与原始版本不同的代码

HTML&CSS(29)
没有jQuery与javascript等脚本,直接在HTML代码中,也是可以,要求不同的浏览器执行不同的HTML代码。
这里利用到IE注释。
比如如下代码:
&!--[if lte IE 7]&
&h1&根据条件判断,这是版本小于等于7的Internet Explorer&br /&&/h1&
&![endif]--&
&!--[if gt IE 7]&
&h5&根据条件判断,这是版本大于7的Internet Explorer&br /&&/h5&
&![endif]--&
&!--[if !IE]&--&
这不是Internet Explorer
&!--&![endif]--&
在不同的浏览器版本出来的效果如下:
这里的IE注释,是类似&!--[if gt IE 7]&与&![endif]--&的对子。&![endif]--&是不变的。
其中的lte意为小于等于,gt则是大于不等于。
比如你写成&!--[if gt IE 7]&与&![endif]--&就是大于IE7的IE浏览器执行,IE注释里面的代码。
一般来说对代码的写作以IE7为界限就好。
当然,我们习惯性地认为大于IE7就是包括谷歌、火狐等浏览器,实质不是,这里浏览器还要利用&!--[if !IE]&--&&![endif]--&去判断。
同时,这样的IE注释,大量用于JS与CSS文件的引用。
比如常见的:
&!--[if lt IE 9]&
&script src='jquery-1.9.0.js'&&/script&
&![endif]--&
&!--[if gte IE 9]&
&script src='jquery-2.0.0.js'&&/script&
&![endif]--&
&!--[if !IE]&--&
&script src='jquery-2.0.0.js'&&/script&
&![endif]--&
就是在IE6、IE7、IE8使用Jquery1.9,大于这些版本的,则使用Jquery2.0.
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:363234次
积分:9885
积分:9885
排名:第1193名
原创:629篇
评论:192条
先用屏幕录制软件Freez Screen Video Capture录制屏幕,再把得到的AVI,利用GIF Movie Gear转化成GIF以下试题来自:
单项选择题标准ASCII码字符集有128个不同的字符代码,它所使用的二进制位数是(
)。A.6B.7C.8D.16
为您推荐的考试题库
你可能感兴趣的试题
1A.计算机硬件主要包括主机、键盘、显示器、鼠标和打印机5大部件B.计算机软件分为系统软件和应用软件两大类C.CPU主要由运算器和控制器组成D.内存储器中存储当前正在执行的程序和处理的数据2A.其基本元件是电子管B.时间段为年C.用机器语言编程D.主要应用于军事目的和科学研究3A.信息处理B.人事管理C.决策支持D.事务处理4A.C++编译程序B.Excel 2000C.学籍管理系统D.财务管理系统5A.打印机B.显示器C.鼠标D.绘图仪
热门相关试卷
最新相关试卷自由、创新、研究、探索
Linux/Windows Mono/DotNet [ Open Source .NET Development/ 使用开源工具进行DotNet软件开发]锐意进取,志存高远.成就梦想,只争朝夕.从你开始,创新世界.【That I exist is a perpetual supprise which is life. Focus on eCommerce】
0. 概述和Portable Class Library
首先这里说的内容不是Visual Studio中工程属性的Target framework编译:
工程属性的Target framework仅仅是针对同一个平台的不同Runtime版本。
这里讲的是同一套代码,可以针对不同平台,也就是不同Visual Studio Express程序的工程文件。
在继续之前,必须先提一下微软的。这也是所有用户应该优先考虑的方式。
用户编译一次针对Portable Class Library的函数库后,整个工程就可以顺利运行在.NET,Silverlight,Window Phone,WinRT(.NET for Windows Store apps)甚至是XBox上。(细节请参考:)
当然Portable Class Library也不是万能的,我总结有如下几点缺陷:
1. 工程模板限制在Visual Studio的非Express版中。
2. 部分平台有版本限制。比如.NET桌面平台的最低版本必须是4.0。
3. 只支持部分通用的.NET类库子集(大多数是BCL相关的)。
而目前我正在写的Mgen Rfi工程 2.0,最低可支持.NET 2.0,同时我一直只使用Visual Studio Express,所以不适合使用Portable Class Library。决定使用另一种方法,这种方法其实在许多其他类库中都看到过,比如Json.NET,MVVM Light等。
1. 配置工程属性
OK,现在,比如我写好了.NET桌面平台的类库,他的源代码就够目前是这样的,最上面文件夹是类库的名称(本例中的Mgen.Rfi),下面两个文件夹是Demo。
然后使用Visual Studio Express for Windows Desktop打开整个工程解决方案,我们需要在当前平台的工程中做一些修改。
在工程属性的Build选项卡中设置如下两项:
1. 在General - Conditional compilation symbols中加入当前平台标识,比如NET20(代表.NET 2.0)。
2. 在Output & Output path中设置当前平台标识的目录。比如bin_NET20。
接着切换Configuration Manager的配置项,确保所有配置项(如Debug和Release)都设置了上面两步。
最后保存。
2. 修改AssemblyInfo.cs
接着,打开工程的AsssemblyInfo.cs文件:
使用C#中的#if等预处理指令通过判断不同平台并加入不同的信息,比如这样:
[assembly:&AssemblyTitle("Mgen Rfi Project for .NET 2.0")]
[assembly: AssemblyTitle("Mgen Rfi Project for Windows Phone 7")]
3. 修改当前工程名称
接着把当前工程以及解决方案的名称都加入当前平台的标识,如下:
修改后工程源代码目录变成了这样:
4. 建立另一个平台的工程
接下来,在另一个平台的Visual Studio Express中创建相应的工程。比如打开Visual Studio Express for Windows Phone,创建工程,选择Class Library:
创建完成后,删除Visual Studio Class Library模版默认创建的没用的Class1.cs文件,此时解决方案是空的:
这里也可以加入一个类库的Demo,当然这个步骤是可选的。加完Demo后,解决方案是这样子:
接下来重复上面&1. 配置工程属性&的步骤,按照要求,设置当前平台的工程属性。如下结果:
(注意Configuration Manager中的Debug和Release配置项都要设置)
此时还需要设置工程的AssemblyInfo.cs吗?
当然不需要了,这里只需要设置工程的属性,工程内的文件会直接使用第一个工程的文件(本例中.NET 2.0平台的文件)!
5. 将两个平台的工程整合到一块
接下来就需要把两个平台的工程文件整合到一块了。首先打开第二个工程的源代码根目录(本例中刚才创建的WP7工程的文件夹):
这里需要做两个任务。
1. 除了类库工程的文件夹(本例中的Mgen.Rfi.WP7文件夹),把其他文件夹和文件复制到第一个工程(本例中的.NET 2.0平台工程)解决方案目录下。
(这个suo文件其实是本地Visual Studio解决方案用户选项文件,也可以不复制)
操作完成后,第一个工程(本例中的.NET 2.0平台工程)根目录是这样的:
(被选中的项目是刚才加入的项目)
2. 把类库工程的文件夹(本例中的Mgen.Rfi.WP7文件夹)中的工程文件选中后复制到第一个工程(本例中的.NET 2.0平台工程)的类库文件夹(本例中的Mgen.Rfi文件夹)下:
(这个user文件也是工程的用户配置文件,可以不复制)
操作完成后,第一个工程(本例中的.NET 2.0平台工程)的类库文件夹(本例中的Mgen.Rfi文件夹)是这样的:
(被选中的项目是刚才加入的项目)
6. 修改第二个工程的解决方案文件
工程文件夹结构处理好后,在整合后的解决方案根目录下选中第二个工程的解决方案(也就是本例中的WP7工程):
使用记事本打开这个文件,我们需要修改他。
为什么?因为创建解决方案时,类库工程目录的名称就是解决方案的名称(本例中的Mgen.Rfi.WP7文件夹),这个名称是有平台标识的,而把第二个工程整合到第一个工程中后,这个类库的名称是没有平台标识的(本例中的Mgen.Rfi文件夹),因为此时这个类库文件夹代表着跨平台的代码。但是这样的话,原来第二个工程的解决方案会无法定位到类库的工程,所以需要修改第二个工程的解决方案文件。否则解决方案不会成功打开类库的工程。
打开记事本后:
找到子工程的相对路径引用(本例中是&Mgen.Rfi.WP7\Mgen.Rfi.WP7.ccsprog&),把它引用的带有平台标识旧目录(本例中的Mgen.Rfi.WP7)改成新的没有平台标识的类库名称(本例中的Mgen.Rfi)。
修改后是:
注意别忘了保存!
7. 把第一个工程的源代码加入到第二个工程中
修改好第二个工程的解决方案文件后,打开第二个工程的解决方案(本例中会使用Visual Studio Express for Windows Phone),此时类库文件会被成功打开,但是不会有任何文件:
接下来,选中类库工程(本例中的Mgen.Rfi.WP7工程),在Solution Explorer上选择Show All Files:
然后源代码文件会全部出现,接着选中需要的文件,右键,选择Include In Project:
第一个平台工程的源代码文件就会加入到第二个平台工程中了。
8. 预处理指令消除编译问题
上面步骤全部完成后,就可以对第二个平台的工程进行编译了,如果有任何编译错误,请使用预处理指令解决,方法类似&2. 修改AssemblyInfo.cs&提到的方式。
比如,在桌面环境下配置数据可能存储在文件中,而在Windows Phone 7环境下配置数据可能存储在独立存储中,所以需要使用预处理指令区分平台来实现不同平台的不同代码编译:
&&& //桌面读取配置文件
&&&&//WP7访问独立存储
OK,最终我们实现了,同一份代码,在不同Visual Studio Express支持的平台上进行编辑和编译!
作者:&出处:&其他参考页面:,。
阅读(...) 评论()
随笔 - 14997
评论 - 1059为什么同一个大学有不同的代码_百度知道据说这就是女生和男生写代码之间的截然不同
这 2 张代码段截图,来自程序员 karliekloss 发过的一条热推 ,他说「这就是女生和男生写代码之间的截然不同」
伯小乐摘几个其他程序员的评论:
OMG,这说的太对了!为啥男生要毫无理由地把事情搞复杂
Vintage_Swift13:
据说飞机软件是男生写的,我恐怕要遭遇不测了。
哇!虽然我不懂代码,但下图那代码写的看起来太有条理了!
这就是为啥需要更多女生来编程了了
Shalom Ayash:
上图那代码太可怕了!那是黑客用来偷果照的的吧!要远离!
扯蛋的。虽然上图的代码不知道想干什么,但是下图的代码属于过度注释。
搞两个极端来比较,意义不大。
另外,编码规范(包括注释要求)一般是由一个项目或者团队所约定并执行的。
关于伯乐小组
这里有好的话题,有启发的回复和值得信任的圈子。
新浪微博:
推荐微信号
(加好友请注明来意)
- 好的话题、有启发的回复、值得信赖的圈子
- 分享和发现有价值的内容与观点
- 为IT单身男女服务的征婚传播平台
- 优秀的工具资源导航
- 翻译传播优秀的外文文章
- 国内外的精选博客文章
- UI,网页,交互和用户体验
- 专注iOS技术分享
- 专注Android技术分享
- JavaScript, HTML5, CSS
- 专注Java技术分享
- 专注Python技术分享
& 2016 伯乐在线

我要回帖

更多关于 不同git仓库同步代码 的文章

 

随机推荐