C#学习以及感受

Java与c#这两者并没有什么本质区别

Java与c#形式上的区别

_ -------------------------------------------------
这是一张截图
_ ---------------------------------------------------------------------------------
Java导包用import而c#用using
Java与c#都是写一个静态的main方法来启动,c#的Main必须大写
Java和c#的数据类型基本一样,c#中的string的s可以小写,c#的布尔类型是bool
etc…


CLR与JVM

这是一张截图
c/c++内存都是自己管理的,而c#则是有类似jvm的虚拟机
所以说c#和c++是有很大差别的,反而是从内到外都接近Java的一种语音


创建与一些方法

这是一张截图
int [] n = new int[10]
int [] n = new int[10]
int [] n = new int[10]
int [] n = new int[10]

请添加图片描述
请添加图片描述

Compare和Contains方法


父类子类/基类派生类

这是一张截图

基类和派生类就是父类和子类

extends变成了:

c#也有析构函数,用来创建完对象销毁时候说一句"对象已经销毁"…


接口

using System;

interface IMyInterface
{
        // 接口成员
    void MethodToImplement();
}

class InterfaceImplementer : IMyInterface
{
    static void Main()
    {
        InterfaceImplementer iImp = new InterfaceImplementer();
        iImp.MethodToImplement();
    }

    public void MethodToImplement()
    {
        Console.WriteLine("MethodToImplement() called.");
    }
}

这个是接口,Java是用implements
这里和类继承一样,是:


不太熟悉的内容枚举类型
其实不该不熟悉,可能是自己太菜了…


命名空间

和package用法差不多?


预处理器

在这里插入图片描述

在这里插入图片描述

我把#理解为static


c#的反射

在这里插入图片描述
c#中的反射,Assembly.Load(“命名空间”)?
大概是这样写的…

这是c#中的反射csdn文章


访问器?get set?

在这里插入图片描述

这玩意不就是get set吗?!

c#叫作访问器


索引器

在这里插入图片描述
在这里插入图片描述

这个感觉挺好的,实际上相当于把一个类赋予了数组的功能


不安全代码

在这里插入图片描述

在这里插入图片描述


委托

在这里插入图片描述

好的,来看一下委托,大概是这个形式

在这里插入图片描述
如果一个方法,带有单一的string类型的变量,那么输入这个方法,就可以创建对象,并且可以有一个int类型的返回值

单独使用一个方法,并且将它创建对象的功能

委托链接看这里


事件(Event)

在这里插入图片描述
这个只好用例子来解释

using System;
using System.Timers;
 
namespace easyToGo
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Timers.Timer timer = new System.Timers.Timer();
            timer.Interval = 1000;//设置时间间隔
            Boy boy = new Boy();
            timer.Elapsed += boy.Action;
 
            Girl girl = new Girl();
            timer.Elapsed += girl.GirlAction;
 
            timer.Start();
 
            Console.ReadLine();
        }
    }
    class Boy
    {
        internal void Action(object sender, ElapsedEventArgs e)
        {
            Console.WriteLine("Jump");
        }
    }
    class Girl
    {
        internal void GirlAction(object sender, ElapsedEventArgs e)
        {
            Console.WriteLine("Sing!");
        }
    }
}

timer.Elapse为每2秒启动一次

Boy和Girl的事件分别为Jump和Sing
在这里插入图片描述
所以他会一直运行这个

这篇写的挺好的


集合


泛型


正则表达式,直接看例子比较好懂
这里有一些例子

主要功能是字符串替代之类的?..


文件I/O,这部分遇到的时候再考虑怎么写吧,先这样…


特性,给人的感觉是画蛇添足,不就是注解吗?!
了解特性看这里

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不惭_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值