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的不同 的相关文章

  • 使用 size_t 值反向遍历向量

    我想以相反的方向遍历向量的值 如您所知 向量的大小为 size t 当我使用以下代码时 for size t r m size 1 r gt 0 r x r f r for size t c r 1 c lt m size c x r m
  • Jersey 和 Spring 中的全局异常处理?

    我正在使用 Jersey 和 Spring 3 2 以及 Open CMIS 开发 RESTful Web 服务 我没有使用 Spring 的 MVC 模式 它只是 Spring IOC 和 Jersey SpringServlet 控制器
  • 是否有一种算法可以在线性时间内计算数组反转?

    我知道有多少倒转 en wikipedia org wiki Inversion 28discrete mathematics 29 in an n 元素数组可以在 O n log n 操作使用增强型归并排序 http www geeksf
  • 函数参数评估顺序[重复]

    这个问题在这里已经有答案了 在 C 和 C 中 函数参数的求值是否有固定的顺序 我的意思是 标准怎么说 是吗left to right or right to left 我从书中得到的信息令人困惑 是否有必要function call应该使
  • JavaFX Integer Spinner (IntegerSpinnerValueFactory) 不会将值回绕到最小值

    我创建了一个带有值的整数微调器 min 5 max 15 and initialValue 12 and wrapAround true 一旦旋转器到达max 15 增量期间的值 而不是将值重置为min 5 正如它所说文档 https op
  • 带双重检查锁的单例设计模式

    假设您有以下代码 1 为什么我们使用双重检查锁 为什么单锁不够好 请提供详细的例子 2 这种实施方式的主要缺点是什么 我该如何证明呢 Thanks public sealed class SomeSingleton5 private sta
  • Web 服务客户端的 AXIS 与 JAX-WS

    我决定用Java 实现Web 服务客户端 我已经在 Eclipse 中生成了 Axis 客户端 并使用 wsimport 生成了 JAS WS 客户端 两种解决方案都有效 现在我必须选择一种来继续 在选择其中之一之前我应该 考虑什么 JAX
  • 按钮悬停和按下效果 CSS Javafx

    我是 CSS 新手 为按钮定义了以下 CSS 样式 其中id并且应用了自定义样式 但不应用悬停和按下效果 bevel grey fx background color linear gradient f2f2f2 d6d6d6 linear
  • 带有自定义鉴别器的 EntityFramework Code First 继承

    我正在尝试在 EntityFramework Code First 中映射以下继承 public class Member public string ProjectName get set public string AssemblyNa
  • SQL参数化查询不显示结果

    我的 DataAcess 类中有以下函数 但它没有显示任何结果 我的代码如下 public List
  • java mysql 准备好的语句

    我正在尝试使用 java 向数据库中进行简单的插入 它告诉我我的 sql 语法已关闭 但是 当我复制打印出来的字符串并将其放入 phpmyadmin 中的 sql 命令中时 它会正确执行该命令 并且我似乎无法弄清楚 java 中的字符串查询
  • 为什么我不能对普通变量进行多态?

    我是一名Java程序员 最近开始学习C 我对某事感到困惑 据我了解 在 C 中 要实现多态行为 您必须使用指针或引用 例如 考虑一个类Shape与实施的方法getArea 它有几个子类 每个子类都以不同的方式重写 getArea 然后考虑以
  • Android - 从渲染线程内结束活动

    下午好 我不熟悉 android 中的活动生命周期 并且一直在尽可能地阅读 但我不知道如何以良好的方式解决以下问题 我有一个使用 GLSurfaceView 的活动来在屏幕上绘制各种内容 在这个 GLSurfaceView 的渲染线程中 我
  • 为什么调试器只显示数组指针中的一个元素?

    首先 我知道new是执行此操作的 C 方法 我只是表明有不止一种方法可以重现此错误 而且两种方法都令人难以置信的令人沮丧 我有两种形式的源文件 我正在尝试调试另一个编程作业 但我并没有寻求帮助 基本上 我正在尝试重新实施set作为一个类 具
  • OpenGL 计算着色器调用

    我有一个与新计算着色器相关的问题 我目前正在研究粒子系统 我将所有粒子存储在着色器存储缓冲区中 以便在计算着色器中访问它们 然后我派遣一个一维工作组 define WORK GROUP SIZE 128 shaderManager gt u
  • java中什么是静态接口?

    我正在阅读Map Entry界面 当我注意到它是一个static界面 我不太明白什么是静态接口 它与常规接口有什么不同 public static interface Map Entry
  • 将 SQL 数据中的一行映射到 Java 对象

    我有一个 Java 类 其实例字段 以及匹配的 setter 方法 与 SQL 数据库表的列名相匹配 我想优雅地从表中获取一行 到 ResultSet 中 并将其映射到此类的实例 例如 我有一个 Student 类 其中包含实例字段 FNA
  • 获取会议组织者邮件地址 EWS API

    我想使用 EWS API 获取会议组织者的邮件地址 目前 我刚刚获得约会项目的一些属性 我听说你可以设置你想要获取哪些属性 我的代码看起来像这样 CalendarView cview new CalendarView start end c
  • Java有没有类似微软CHESS的工具?

    是否有类似于 Microsoft 的现有 Java 工具CHESS http research microsoft com chess 或者 CHESS 源代码是否开放 以便我可以尝试将其转换为 Java 谷歌的织线工 http code
  • 如何在用户空间程序中使用内核 libcrc32c (或相同的函数)?

    我想在我自己的用户空间程序中进行一些 CRC 检查 我发现内核加密库已经在系统中 并且支持 SSE4 2 我尝试直接 include

随机推荐

  • 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