本文写给想学C#的朋友,目的是以尽快的速度入门
对于这个问题,我以前的回答是:好学!但仔细想想,不是这么回事,对于新手来说,C#没有那么好学。
反而学Java还要容易一些,学Java Web就行了,就是SpringBoot那一套。
但是C#方向比较多,你是学控制台程序、WebAPI、ASP.NET、Winform还是WPF?如果再区分一下.NET Framework和.NET Core,应用程序类型就更多了。
我建议可以通过控制台程序和Winform入门,这样才简单。
控制台程序可用于写Hello World,以及学习语法的时候写一些小Demo。使用Winform,就可以写一些小应用了,比如计算器、时钟,以及你能想到的小工具,都可以用C#写。
比如计算器程序,可以写的很简单,也可以写的很复杂,这是我2012年写的:Calculator
万事开头难,简单入门之后,C#的简单易学才真正体现出来。
不建议看视频学习,除非你确实找到了不错的入门视频,原因:
1、C#优秀入门视频不多。
2、看视频学习速度慢。只学语法没有用,看不到学习成果,学完就扔了。所以为了快速学完语法,再学实用的内容,最好看书。
这里推荐一本从当当网搜索到的书,《C#入门经典》第9版,书的内容更新至C#9和.NET5,很新了。

如果你有更好的书,也可以。
恭喜你!你已经入门了!这意味着什么,只要有公司要你,你就可以干活了!
可是、可是,公司做Web项目,我ASP.NET还没学啊?你只要会照葫芦画瓢,你就能干活了!
当你干了两天活之后,对于ASP.NET的学习,你是买书,还是看视频,随你便。
我以前就是这样入门的,那是十几年前了,现在太卷了。参与项目,才会学的更快。
例如:
新手可以直接学习.NET Core,别管.NET Framework了
学完了语法,学会了如何创建控制台程序、Winform程序、Web API程序、ASP.NET Core Web程序,下一步就是实际工作了,最重要的就是学会各种库的使用。
当你创建一个工程,VS2022会帮你自动引入自带的库,主要是System开头,有的是Microsoft开头,文档:.NET API 浏览器,这个文档我没有正经看过,我都忘了自己是怎么学会的了,在工作中学的吧,我也只会其中比较常用的部分。
NuGet 是免费、开源的包管理开发工具。https://www.nuget.org/
光有官方自带的库,是不够的,这就需要第三方开源库。NuGet是非常人性化的。
以Dapper这个ORM库为例:
搜索我们要安装的库,我们可以看到一些关键信息:下载量、最近更新时间、最新版本号,下载量大的库,一般都是主流的库,如果你看到一个库,下载量很小,那你要谨慎一点。

可以看到这个库是在.NET 5.0、.NET Standard 2.0和.NET Framework 4.6.1框架下编译的(深色),可以看到支持(兼容)哪些框架及版本(浅色)

VS2022会自动管理依赖库以及它们的冲突,一般不需要手动处理。当然遇到冲突且无法自动解决的情况下,也有配置方法。

这个很重要,很多年没有更新的库,你要谨慎一点。


点开1.60.6这个版本,这是net452框架能用的最新的版本了


选择工程、选择版本,点击安装

可以通过NuGet包管理器的"已安装"选项卡查看已安装的库,也可以工程文件中看到安装的库
这里依赖库、依赖库的依赖库,是没有列出来的,非常清爽

如何在ruby中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL
我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha
C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
@作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors 1、什么是behaviors 2、behaviors的工作方式 3、创建behavior 4、导入并使用behavior 5、behavior中所有可用的节点 6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors 1、什么是behaviorsbehaviors是小程序中,用于实现
遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!一、使用递归遍历文件夹整体思路1、使用File封装初始目录,2、打印这个目录3、获取这个目录下所有的子文件和子目录的数组。4、遍历这个数组,取出每个File对象4-1、如果File是否是一个文件,打印4-2、否则就是一个目录,递归调用代码实现publicclassSearchFile{publicstaticvoidmain(String[]args){//初始目录Filedir=newFile("d:/Dev");Datebeg
ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear
有没有办法快速将表格格式的ruby哈希打印到文件中?如:keyAkeyBkeyC...1232343451253474456...其中散列的值是不同大小的数组。还是使用双循环是唯一的方法?谢谢 最佳答案 试试我写的这个gem(在表中打印散列、ruby对象、ActiveRecord对象):http://github.com/arches/table_print 关于ruby-如何以表格格式快速打印Ruby哈希值?,我们在StackOverflow上找到一个类似的问题:
我如何做Ruby方法"Flatten"RubyMethod在C#中。此方法将锯齿状数组展平为一维数组。例如:s=[1,2,3]#=>[1,2,3]t=[4,5,6,[7,8]]#=>[4,5,6,[7,8]]a=[s,t,9,10]#=>[[1,2,3],[4,5,6,[7,8]],9,10]a.flatten#=>[1,2,3,4,5,6,7,8,9,10 最佳答案 递归解决方案:IEnumerableFlatten(IEnumerablearray){foreach(variteminarray){if(itemisIEnume
我最近从C#转向了Ruby,我发现自己无法制作可折叠的标记代码区域。我只是想到做这种事情应该没问题:classExamplebegin#agroupofmethodsdefmethod1..enddefmethod2..endenddefmethod3..endend...但是这样做真的可以吗?method1和method2最终与method3是同一种东西吗?还是有一些我还没有见过的用于执行此操作的Ruby惯用语? 最佳答案 正如其他人所说,这不会改变方法定义。但是,如果要标记方法组,为什么不使用Ruby语义来标记它们呢?您可以使用