C#与Java的不同

2023-12-05


https://www.cnblogs.com/Yan3399/p/17324904.html
1、C# 对应java中关键字:base—super、this—this、sealed—final
(1)base关键字 ——对应java super
C#中base关键字的详解,等价java super()方法:https://blog.csdn.net/qq_45096273/article/details/106605959


(2)this —— this

(3)sealed —— 对应java final

sealed关键字

应用于某个类时,sealed 修饰符可阻止其他类继承自该类。类似于Java中final关键字。
在下面的示例中,类 B 从类 A 继承,但是任何类都不能继承自类 B 。

class A {}
sealed class B : A {}

5、C#声明常量
(1)静态常量(编译时常量):const
在编译时就确定了值,必须在声明时就进行初始化且之后不能进行更改,可在类和方法中定义
const double a=3.14;// 正确声明常量的方法
※const声明的常量默认为静态的,不用实例化就可以直接调用,因此声明时不能和static关键字同时存在

(2)动态常量(运行时常量):readonly
在运行时确定值,只能在声明时或构造函数中初始化,只能在类中定义。
readonly int a=1;  // 声明时初始化
readonly int b;    // 构造函数中初始化
Program(){ b=2;  }

6、C# 实现类似java Class类的-newInstance()方法
newInstance() 方法用于创建此 Class 对象表示的类的新实例。
newInstance() 方法是一个非静态方法,它只能通过类对象访问
C#中如何实现:
Type type = Type.GetType(“TestSpace.TestClass”);
Object[] constructParms = new object[] {“hello”}; //构造器引数
TestClass obj =(TestClass)Activator.CreateInstance(type,constructParms);
//如果类的构造器是无引数的,就呼叫这个
TestClass obj = (TestClass)Activator.CreateInstance(t);
java和C#写法对比:

7、C#对应Java Class.forName作用
Class.forName(xxx.xx.xx)返回的是一个类,
A a = (A)Class.forName(“pacage.A”).newInstance();
这和 A a = new A(); 是一样的效果。

——因此,java中:Class.forName("java.lang.String")
——C# 中可用 A a = Type.GetType("java.lang.String")替代

8、C#跳出循环的几种方法
break语句:终止并跳出循环体。
continue语句:终止当前循环,重新开始一个新的循环。
goto语句:跳转到指定位置 。
参考:https://www.cnblogs.com/qingjiawen/p/14688195.html?ivk_sa=1024320u


12、C#异常处理,怎样将异常抛到上一层
问题:例如有两个层,逻辑层,数据层。数据层里发生异常,按以下写法程序会直接断掉,没办法抛到上一层。
异常监控:
try{}
catch(Exception ex){
throw ex;
}
正确写法是:
try{}
catch(Exception ex){
throw new Exeption(ex.message)
}
一个项目只要一个异常处理的地方即可(个别特殊的地方个别处理),也就是说所有的异常都在最顶层的某个地方处理,
而程序中不用关心异常处理,只要在可能出现异常的地方抛出即可。


13、C# 生成1到100整数数组的快捷方法
数组:Enumerable.Range(1, 100).ToArray();
List:Enumerable.Range(1, 100).ToList();

14、C# 获取1000到9999之间的随机数
newRandom().Next(1000, 9999)

15、C# 获取当前方法名
System.Reflection.MethodBase.GetCurrentMethod().Name

16、Json对象和字符串互相转化
首先项目需要引用Newtonsoft.Json.dll 程序集
2.1)JSON对象转JSON字符串
string str =JsonConvert.SerializeObject(需要转换的json对象);
2.2) JSON字符串转JSON对象
var t =JsonConvert.DeserializeObject(需要转换的字符串);

问题2、window命令行进入 带空格目录会报错
用英文的双引号把带空格的目录包起来——cd C:\"Program Files"\Google\Chrome\Application


18、VS快捷键
(1)自动生成{get;set;}:输入prop,两下Tab——》直接输入数据类型,之后一下Tab输入属性名
(2)整段添加#region:选中注释内容(可忽略),ctrl+K、S,选择region
(3)智能提示:ctrl+J
(4)方法参数提示:ctrl+shift+空格
(5)打cw,两下tab,快速生成console.WriteLine();


一个 @引号字符串:

@"runoob.com";
C# string 字符串的前面可以加 @(称作"逐字字符串")将转义字符(\)当作普通字符对待,比如:

string str = @"C:\Windows";
等价于:

string str = "C:\\Windows";
@ 字符串中可以任意换行,换行符及缩进空格都计算在字符串长度之内。

string str = @"<script type=""text/javascript"">
<!--
-->
</script>";

C# 9 新功能“源代码生成器
2020 年 11 月发布的 C# 9.0,融入了.NET 5 的新功能——源码生成器(source generators)
https://zhuanlan.zhihu.com/p/540471270
把包含Person的程序集载入类似ILSpy的反编译软件,你会发现相等方法已被自动实现了。如下图所示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#与Java的不同 的相关文章

随机推荐

  • javascript的常用类型包括,javascript的用途有哪些?

    大家好 给大家分享一下javascript有哪些常用的属性和方法 很多人还不知道这一点 下面详细解释一下 现在让我们来看看 java的函数有四种调用方式 每种方式的不同之处是在于初始化的不同 下面就以实例来说明四种函数方式的调用 一 函数调
  • 手机怎么用广角镜头拍摄,手机怎么用word文档

    大家好 给大家分享一下手机怎么用数据线给电脑传文件 很多人还不知道这一点 下面详细解释一下 现在让我们来看看 在手机应用程序开发中 经常需要获取和设置手机的时间 JavaScript是一种强大的脚本语言 可以轻松地在网页中操作和修改时间 P
  • 【源码篇】基于SpringBoot+Vue实现的在线考试系统

    文章目录 系统说明 技术选型 成果展示 账号地址及其他说明 系统说明 基于SpringBoot Vue实现的在线考试系统是为高校打造的一款在线考试平台 系统功能说明 1 系统共有
  • 探索新的内容策略,伪原创API是关键【详细教程】

    大家好 今天来聊聊探索新的内容策略 伪原创API是关键 希望能给大家提供一点参考 以下是针对论文重复率高的情况 提供一些修改建议和技巧 探索新的内容策略 伪原创API是关键 一 背景介绍 随着互联网信息的爆炸式增长 内容创作已经成为许多企业
  • prometheus|云原生|轻型日志收集系统loki+promtail的部署说明

    一 日志聚合的概念说明 日志 每一个程序 服务都应该有保留日志 日志的作用第一是记录程序运行的情况 在出错的时候能够记录错误情况 简单来说就是审计工作 例如nginx服务的日志 kubernetes集群的pod运行日志 Linux系统的系统
  • MySQL InnoDB 如何实现行锁?

    行级锁是 MySQL 中粒度最小的一种锁 他能大大减少数据库操作的冲突 INNODB 的行级锁有共享锁 S LOCK 和排他锁 X LOCK 两种 共享锁允许事物读一行记录 不允许任何线程对该行记录进行修改 排他锁允许当前事物删除或更新一行
  • MySQL中一些重要的日志文件:二进制日志binlog、事务日志redolog

    MySQL包含多个重要的日志文件 用于记录数据库的操作和状态信息 下面是MySQL中一些重要的日志文件 错误日志 Error Log 错误日志记录了MySQL服务器在启动 运行和关闭过程中发生的错误和警告信息 它是排查和解决问题的重要依据
  • 超出重复率情况说明【一文读懂】

    大家好 今天来聊聊超出重复率情况说明 希望能给大家提供一点参考 以下是针对论文重复率高的情况 提供一些修改建议和技巧 超出重复率情况说明 在数据处理和分析过程中 有时会遇到数据重复率超出预定范围的情况 智能写作 这种情况可能会导致数据质量下
  • 论文重复率和查重率一样吗【详细教程】

    大家好 今天来聊聊论文重复率和查重率一样吗 希望能给大家提供一点参考 以下是针对论文重复率高的情况 提供一些修改建议和技巧 论文重复率和查重率一样吗 摘要 在论文撰写过程中 了解论文重复率和查重率的概念及其关系是非常重要的 伪原创 本文将详
  • MySQL中,什么是脏页和干净页?

    MySQL 为了操作的性能优化 会把数据更新先放入内存中 之后再统一更新到磁盘 当内存数据和磁盘数据内容不一致的时候 我们称这个内存页为脏页 内存数据写到磁盘后 内存的数据和磁盘上的内容就一致了 我们称为 干净页 在MySQL中 脏页 Di
  • MySQL InnoDB 存储引擎有几种锁算法?

    Record Lock 单个行记录上的锁 Gap Lock 间隙锁 锁定一个范围 不包括记录本身 Next Key Lock 锁定一个范围 包括记录本身 MySQL InnoDB存储引擎主要使用两种锁算法 分别是行级锁和间隙锁 行级锁 Ro
  • 浅谈安科瑞无线测温设备在挪威某项目的应用

    摘要 安科瑞无线温度设备装置通过无线温度收发器和各无线温度传感器直接进行温度值的传输 并采用液晶显示各无线温度传感器所测温度 Absrtact Acre wireless temperature device directly transm
  • yum 操作,出现Cannot retrieve metalink for repository: epel/x86_64

    详细报错如下 Loaded plugins fastestmirror Determining fastest mirrors One of the configured repositories failed Unknown and yu
  • 2024年甘肃省职业院校技能大赛(中职教师组)网络安全竞赛样题卷④

    2024年甘肃省职业院校技能大赛 中职教师组 网络安全竞赛样题卷 2024年甘肃省职业院校技能大赛 中职教师组 网络安全竞赛样题卷 A模块基础设施设置 安全加固 本模块200分 A 1任务一 登录安全加固 Windows A 2任务二 本地
  • 什么是Redo Log Buffer缓冲区?

    Redo Log 重做日志 会先存储在内存中 在MySQL中 Redo Log是一种事务日志 用于记录正在进行中的事务的修改操作 当事务执行更新操作 如插入 更新 删除 时 MySQL会先将对应的Redo Log记录写入到内存中的Redo
  • MySQL 刷脏页的速度很慢可能是什么原因?

    在 MySQL 中单独刷一个脏页的速度是很快的 如果发现刷脏页的速度很慢 说明触发了 MySQL 刷脏页的 连坐 机制 MySQL 的 连坐 机制是指当 MySQL 刷脏页的时候如果发现相邻的数据页也是脏页也会一起刷掉 而这个动作可以一直蔓
  • 使用idea如何快速的搭建ssm的开发环境

    文章目录 唠嗑部分 言归正传 1 打开idea 点击新建项目 2 填写信息 3 找到pom xml先添加springboot父依赖
  • netty源码:(3) ThreadPerTaskExecutor

    这个类封装了一个ThreadFactory 同时提供了一个execute方法 用来把Runnable提交给ThreadFactory来执行
  • Jmeter接口自动化测试 —— Jmeter变量的使用

    专注于分享软件测试干货内容 欢迎点赞 收藏 留言 如有错误敬请指正 交流讨论 欢迎加入我们一起学习 资源分享 耗时200 小时精选的 软件测试 资料包 最困难的时候 也就是我们离成功不远的时候 在使用jmeter进行接口测试时 我们难免会遇
  • C#与Java的不同

    https www cnblogs com Yan3399 p 17324904 html 1 C 对应java中关键字 base super this this sealed final 1 base关键字 对应java super C