- 浏览: 369611 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (335)
- C++ (190)
- 设计模式 (43)
- 数据库技术 (5)
- 网络编程 (11)
- 自动化测试 (6)
- Linux (13)
- OpenSSL (10)
- MS Crypt API (5)
- SCM (2)
- English (4)
- Android (10)
- EMV规范 (1)
- Saturn Platform (0)
- C (10)
- SQL (2)
- ASP.NET (3)
- 英语口语学习 (3)
- 调试工具 (21)
- 编译技术 (5)
- UML (1)
- 项目管理 (5)
- 敏捷开发 (2)
- Http Server (6)
- 代码审查、代码分析 (5)
- 面试基础 (10)
- 重点知识 (16)
- STL (6)
- Efficient C++资料 (8)
- 数据结构和算法 (7)
- 读书笔记 (0)
- 开源项目 (4)
- 多线程 (2)
- Console App (6)
- 个人开源项目 (4)
- IBM DevelopWorks (4)
- Java (16)
- 内存泄漏相关调试和检测 (13)
- 软件测试相关技术 (2)
- C# (11)
- Apple Related (1)
- 软件测试和管理 (2)
- EMV (1)
- Python (1)
- Node.js (6)
- JavaScript (5)
- VUE (1)
- Frontend (1)
- Backend (4)
- RESTful API (3)
- Firebase (3)
最新评论
-
u013189503:
来个密码吧
[C++][Logging] 项目中写日志模块的实现 -
wyf_vc:
来个密码啊!!
[C++][Logging] 项目中写日志模块的实现
参考链接
http://blog.csdn.net/weiwenhp/article/details/7951743
平时碰到分支条件判断最常用的是if else语句,不过有时要是分支条件太多用switch就更直观,方便一点.先举两个简单的例子.
C++:
C#:
C++,C#中swith的用法几乎是一模一样了.只有一些细小的差别,C#在C++的基础上做了一点改进.
区别:
1. C++中switch()括号中的变量类型只能是整形或者能默认转换成整形.比如int,long,bool,char,enum.(当然表达式也行,只要结果符合前面条件).但float,double,string就不行.另外自定义的类型,比如某个class,如果类中有运算符重载,class能默认转换成int.那也可以.不过一般情况很少会在switch中用到自定义的类型吧
C#中switch()括号中的变量类型可以是byte,short,int,long,bool,enum另外还有string,这个在C++中是不行的.跟c++一样,可以用表达式,但float,double是不行的.自定义类型如可转换也行.
2. C++中break是可以省略的.但这样容易造成一个问题.如果没有break当某个分支符合条件执行完了后,会接着执行后面的分支.在上面的例子中,如果break全部去掉.结果会是twothreedefault
而C#要你强制性使用break,不用的话在编译时就会报错.这样就不会犯C++中因忘记写break而出现的错误.
补充:其实也可以用return替换break.只不过return是表示退出整个函数,而break只是退出switch这个语句块.
如果switch的语句块中的逻辑比较复杂还可以综合使用goto语句.
比如
当然很多很多人都说过在写代码时尽量另用goto语句,不得万不得已少用了.
http://blog.csdn.net/weiwenhp/article/details/7951743
平时碰到分支条件判断最常用的是if else语句,不过有时要是分支条件太多用switch就更直观,方便一点.先举两个简单的例子.
C++:
int num = 2; switch(num) { case 1:cout<<"one";break; case 2:cout<<"two";break; case 3:cout<<"three";break; //break可省略 default:cout<<"default";break; //default 非必须,可以省略 }
C#:
int num = 2; switch (num) { case 1: Console.WriteLine("one"); break; case 2: Console.WriteLine("two"); break; case 3: Console.WriteLine("three"); break; //break不能省略 default: Console.WriteLine("default"); break; //default 可省略. }
C++,C#中swith的用法几乎是一模一样了.只有一些细小的差别,C#在C++的基础上做了一点改进.
区别:
1. C++中switch()括号中的变量类型只能是整形或者能默认转换成整形.比如int,long,bool,char,enum.(当然表达式也行,只要结果符合前面条件).但float,double,string就不行.另外自定义的类型,比如某个class,如果类中有运算符重载,class能默认转换成int.那也可以.不过一般情况很少会在switch中用到自定义的类型吧
C#中switch()括号中的变量类型可以是byte,short,int,long,bool,enum另外还有string,这个在C++中是不行的.跟c++一样,可以用表达式,但float,double是不行的.自定义类型如可转换也行.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ch04Ex03 { class Program { static void Main(string[] args) { const string myName = "karli"; const string sexyName = "angelina"; const string sillyName = "ploppy"; string name; Console.WriteLine("What is your name?"); name = Console.ReadLine(); switch (name.ToLower()) { case myName: Console.WriteLine("You have the same name as me!"); break; case sexyName: Console.WriteLine("My, what a sexy name you have!"); break; case sillyName: Console.WriteLine("That's a very silly name."); break; } Console.WriteLine("Hello {0}!", name); Console.ReadKey(); } } }
2. C++中break是可以省略的.但这样容易造成一个问题.如果没有break当某个分支符合条件执行完了后,会接着执行后面的分支.在上面的例子中,如果break全部去掉.结果会是twothreedefault
而C#要你强制性使用break,不用的话在编译时就会报错.这样就不会犯C++中因忘记写break而出现的错误.
补充:其实也可以用return替换break.只不过return是表示退出整个函数,而break只是退出switch这个语句块.
如果switch的语句块中的逻辑比较复杂还可以综合使用goto语句.
比如
int num = 2; bool check = false; switch (num) { case 1: Console.WriteLine("one"); break; case 2: Console.WriteLine("two"); goto label; case 3: Console.WriteLine("three"); break; label: default: Console.WriteLine("default"); break; }
当然很多很多人都说过在写代码时尽量另用goto语句,不得万不得已少用了.
发表评论
-
FreeRTOS
2022-03-05 16:31 247Ref https://blog.csdn.net/weix ... -
串口通讯相关
2018-11-02 13:44 410https://bbs.csdn.net/wap/topics ... -
[转]C++验证IP是否可以PING通
2018-10-30 17:54 1325https://www.cnblogs.com/guoyz13 ... -
C++/MFC 換皮膚
2018-10-20 11:05 476https://blog.csdn.net/u01123991 ... -
WinCE 截屏 - C++ 代碼
2018-08-31 09:45 573// this function create a bmp ... -
Android NDK搭建環境
2017-11-27 13:25 579https://www.cnblogs.com/ut2016- ... -
C#编码规范参考
2017-11-14 16:11 574https://www.cnblogs.com/wulinfe ... -
8583协议相关
2017-10-17 13:38 5728583相关资料,整理中... -
Java高级应用之JNI
2017-06-19 09:00 599参考link http://www.cnblogs.com/l ... -
BeagleBone Black安装mono开发环境
2017-05-17 08:49 672Installing Mono and C# on the B ... -
C++实现ping功能
2017-04-18 11:21 2154基础知识 ping的过程是向目的IP发送一个type=8的I ... -
OpenSSL 编译环境搭建
2017-03-27 15:01 9061 安裝VS2008到 c:\Program Files (x ... -
最优非对称加密填充(OAEP)
2017-03-25 14:53 1582OpenSSL命令---rsautl http://blog. ... -
[Platform Builder] 设置SVM OS build Env
2016-11-10 11:39 01 copy one OSDesign Project to ... -
[Windows] System Error Codes(GetLastError )0-----5999
2016-10-26 13:28 1880ERROR_SUCCESS 0 (0x0) T ... -
开源Windows驱动程序框架
2016-09-17 21:35 870转自 http://code.csdn.net/news/28 ... -
c/c++代码中执行cmd命令
2016-09-14 14:50 1907转自 http://blog.csdn.net/slixinx ... -
C#使用C++标准DLL实例(包含callback)
2016-09-11 19:44 1085C++编写标准Win32DLL如下 头文件 /***** ... -
C#里partial关键字的作用
2016-09-09 16:37 955转自 http://www.cnblogs.com/O ... -
C#调用C++的DLL搜集整理的所有数据类型转换方式
2016-09-09 16:07 968转自 http://www.cnblogs.com/zeroo ...
相关推荐
预处理器指令在C++中用于条件编译,而在C#中,这些功能更多地被编译器特性所取代,如`#if`、`#endif`等。C#不使用头文件,而是使用`using`指令来引用命名空间。 异常处理方面,C#的`try`-`catch`-`finally`结构比...
C++的struct与class主要区别在于默认访问权限,但在C#中,struct和class有本质的内存管理差异。 6. 语法差异:包括数组声明、switch语句、运算符重载、构造函数、异常处理等方面,C#都具有更为严谨和安全的规则,...
在IT行业中,C、C++和C#是三种至关重要的编程语言,它们各自拥有独特的特性和用途。这份“C/C++/C#开发手册资料”很可能是为了帮助开发者深入理解和熟练掌握这三种语言而编写的综合资源。下面,我们将详细探讨这些...
3. 布尔值:C++的bool类型可以与整数类型相互转换,但在C#中,bool类型与其他类型之间不允许直接转换,确保类型安全。 4. long类型:C#的long是64位整数,而C++中的long通常是32位。 5. 参数传递:C++默认按值传递...
在语言规范的比较中,可以看到一些具体差异: 1. **简单数据类型**:C#中的值类型(Value Types)对应Java的简单数据类型(Primitive)。C#提供了更多的预定义数据类型,比如无符号整数类型(unit)。 2. **常量**...
标题和描述提示了文件内容涉及Java与C#两种编程语言的相同点与不同点,以及通过对比阐述它们的核心概念和技术特征。...了解这些相同与差异有助于开发者更好地掌握这两种语言,并在不同项目需求中作出合理的技术选择。
- **18.2 在C#代码中调用C++和VB编写的组件** - COM互操作的技术细节。 - **18.3 版本控制** - 版本控制系统的使用方法。 - **18.4 代码优化** - 提高代码性能的最佳实践。 - **18.5 小结** - 回顾本章介绍的...
根据提供的文档信息,我们可以深入探讨C++、Java与C#三种编程语言之间的语法差异。这里主要聚焦于C++与C#的对比,并适当提及Java的相关特性,以帮助读者更好地理解这些语言之间的区别。 ### 一、继承 **C++**: ...
在本文中,我们将深入探讨C#的核心概念、语法特性,以及它与JavaScript的对比,帮助你更好地理解这两种语言。 首先,C# 的基础语法与C++和Java非常相似,具有严谨的类型系统,支持类、接口、继承和多态性。它的命名...
根据提供的文件信息,本文将详细解释如何在C#中实现窗口抖动效果,并探讨如何将这一功能移植到Java和C++中。 ### C#中的窗口抖动实现 #### 概述 窗口抖动是一种常见的用户界面动画效果,常用于吸引用户的注意力或...
C#(C-Sharp)是由微软开发的一种新型编程语言,被广泛认为是面向组件的编程语言之一,尤其是在C/C++语言家族中。它由微软的Anders Hejlsberg与Scott Wiltamuth共同设计。相比之下,Java是一种更为成熟的编程语言,...
首先,C#和Java都支持面向对象编程,但C#在设计上更加靠近C++,提供了一些C++的特性,比如模板和指针(但C#的指针使用受到限制)。Java则没有提供C++那样的指针,而是使用引用作为对象的访问方式。在继承方面,两者...
C#是由微软开发的编程语言,设计初衷在于融合C++的强大功能与Java的易用性,同时利用.NET框架的优势。相比之下,Java则由Sun Microsystems创建,后被Oracle收购,是一种跨平台的通用编程语言,以其“一次编写,到处...
尽管C#在诞生之初就被外界认为是对Java的克隆或者替代品,但实际上,C#与Java在很多方面都有显著的差异,而不仅仅是Java的翻版。对于Java开发者来说,理解这些差异对于学习C#或扩展技术视野至关重要。 首先,让我们...
- 引用类型与值类型:在C#中,类(class)的实例是引用类型,它们的内存分配在堆中,而C++中的类实例通常是值类型,存储在栈中。 - 结构(struct)的区别:C#中的struct是值类型,与C++中的struct类似,但C#中的...
C#是一种面向对象的编程语言,由微软公司于2000年推出,主要用于开发Windows平台的应用程序。它被设计为提高程序员的生产效率,同时提供...了解并掌握这些知识,对于进行.NET开发或对比分析C#与Java的差异都至关重要。
而在C#中,属性是真正的内置特性,get和set方法必须一起定义,访问时使用点号"."。 2. **对象索引**: - C#支持对象索引,类似对象数组,可以通过int索引访问。 3. **访问修饰符的默认值**: - 当在C#中不指定...