C#
文章平均质量分 73
乐百川
这个作者很懒,什么都没留下…
展开
-
C#程序员的福音来啦,Blazor框架概览
其实这篇文章算是迟到了很长时间了,不过现在写出来还不算太晚。.NET Core 3.0已经出来一段时间了,随.NET Core 3.0出来的,还有一个名为Blazor的框架。今天我试用了一下,感觉很有意思。这个框架的潜力很大,而且因为基于.NET技术,对于C#程序员来说学习门槛很低,开发效率高的一笔。所以来给大家介绍一下。官方介绍首先来看看官方对于blazor框架的一些介绍:Blazor...原创 2019-11-23 21:55:55 · 5127 阅读 · 0 评论 -
C#学习笔记 特性
特性是一组用方括号包括的代码,可以为代码提供额外的信息。利用反射,可以为特性提供非常强大的功能。当编译器遇到一个自定义特性时,会首先把Attribute字符串添加到特性名称后面,形成一个新的名称。如果特性 已经以Attribute结尾,则不会再添加字符串。得到该字符串之后,编译器会在可用的命名空间中查找该特性类,如果找不到该类或者找到的类和特性的用法不匹配,就会报告编译错误。AttributeUsa原创 2015-11-12 23:34:52 · 568 阅读 · 0 评论 -
C#学习笔记 文件操作
获得文件和文件夹信息.NET管理文件和文件夹信息的类有如下几个。Directory和File类是两个静态类,可以静态地获取文件和文件夹的信息而无需实例化对象,这在只对某个文件或者文件夹执行一次操作的时候是很有用的。Path也是一个静态类,为路径操作提供了各种方法。DirectoryInfo和FileInfo类是两个可以实例化的类,在实例化的时候有一些开销,但是实例化之后对某个文件或文件夹进行大量操作原创 2015-11-15 20:41:52 · 926 阅读 · 2 评论 -
C#学习笔记 ADO.NET
ADO.NET是一项.NET数据库的技术,就像Java的JDBC一样。连接数据库字符串,可以在http://www.connectionstrings.com/ 这个网站上找到。连接SQL SERVER数据库ADO.NET附带了SQL SERVER、ODBC和OLE DB的数据库提供程序。所以在使用SQL SERVER的时候不需要安装额外的库。在这里,我用的SQL SERVER是2014版本的,VS原创 2015-11-23 16:26:37 · 676 阅读 · 0 评论 -
我看过的C#书籍
《C#入门经典》(第六版)这本书当初花了70多块在京东上买的,当时想着是学学C#,写一写Windows程序玩玩,总不能用swing写GUI吧。这本书总体来说作为一本入门教材还是不错的,但是需要一定其他编程语言的基础。零基础的看这本书初看之下可能有些地方会感到莫名其妙。我学过一点java,所以感觉这本书看起来还是比较容易理解的。这本书的侧重点是入门,所以很多东西都没有讲,比如说网络编程、Windows原创 2015-11-08 19:21:13 · 5889 阅读 · 0 评论 -
C#学习笔记 线程同步
多个线程同时操作一个数据的话,可能会发生数据的错误。这个时候就需要进行线程同步了。用户模式同步构造易变构造CLR保证4字节以下的基本类型的读写是原子性的,也就是说这些变量的值都会一次性被读取或者写入。但是64位的值比如Int64和Double,就不是原子读写的了。这样的变量在机器级别上,可能需要两次读写才能完成。另外由于编译器的优化,一些变量的读写顺序可能和实际执行的顺序不同。这会导致一些在单线程下原创 2016-01-10 23:31:52 · 861 阅读 · 0 评论 -
C#学习笔记 线程同步问题
这是用C#提供的各种类实现的几个线程同步问题。生产者消费者问题生产者消费者问题大体是这样的:有几个生产者和几个消费者,共享一个缓冲区。生产者会向缓冲区中添加数据;消费者会从缓冲区中将数据取走。需要处理这两者之间的同步问题。这里先定义一个自己的线程安全队列。该队列使用两个信号量来处理同步问题。另外在进行操作的时候需要锁定临界区,这里使用lock语句实现。public class FixedQueue<原创 2016-03-21 22:29:14 · 533 阅读 · 0 评论 -
从零开始构建MSBuild C#项目文件
本文参考自MSDN的一篇文章,从零开始创建MSBuild C#项目文件。准备条件一个好用的文本编辑器,例如Atom或者Sublime Text。MSBuild命令行工具。如果已经安装了Visual Studio的话,应该可以在开始菜单中找到类似Visual Studio 2015的MSBuild命令提示符 这样的项目。创建程序首先打开MSBuild命令提示符,然后切换到你想要创建项目的文件夹,原创 2016-06-03 15:29:34 · 7668 阅读 · 0 评论 -
.NET平台处理32位系统和64位系统的一点兼容性问题
现在随着硬件的升级换代,越来越多的电脑开始使用64位的系统,但是仍然有很大一部分无法升级的旧电脑还在使用32位的操作系统。如果在64位系统下开发和运行32位程序的话,和32位系统运行32位程序会有一些区别。注册表问题32位系统和64位系统的注册表结构并不相同。64位系统下,使用32位程序访问注册表的话,节点会被自动重定向到Wow6432Node节点下。例如想要保存信息到HKEY_LOCAL_MACH原创 2016-06-06 15:43:44 · 4104 阅读 · 0 评论 -
一点.NET学习资源
.NET平台是微软为Windows推出的一套跨Windows平台的开发平台,它提供了一个类似Java虚拟机的托管运行环境(CLR),提供了几种运行在.NET平台上的优秀的编程语言(C#和Visual Basic等),以及一整套强大的.NET类库。.NET在windows上使用非常广泛,我们安装一些游戏,往往就需要.NET框架的支持。另外微软还提供了.NET平台上开发图形界面程序的工具(WinForm原创 2017-03-22 21:44:38 · 609 阅读 · 0 评论 -
用WPF做一个简易浏览器
微软的WPF(Windows Presentation Foundation)是目前Windows平台上最好用的图形界面框架了。如果想在Windows平台上编写图形界面程序,而且没有跨平台且性能需求比较高,而且对C#语言比较熟悉,那么WPF就是最适合你的了。WPF虽然出来也有大概十来年了,但是它的很多设计思想还是非常先进的,配合C#这门语言的话更加顺手。WPF的界面设计和程序功能完全解耦,也就是说设原创 2017-06-30 01:01:56 · 14733 阅读 · 6 评论 -
.NET Core 2.0发布了
.NET Core 2.0长久以来,.NET框架一直因为只能在Windows系统上运行而被人黑。所以微软重写了一个跨平台的.NET,这就是.NET Core。现在.NET Core已经更新到2.0了。如果有兴趣的话可以看看官方的更新日志。总之,所有使用.NET Core的同学, 最好都更新到最新版本,在性能、API实现、命令友好度方面都有改进。Visual Studio 2017 15.3+相应的,原创 2017-08-16 18:22:36 · 1781 阅读 · 0 评论 -
IIS出现"System.Data.SqlClient.SqlException"时的解决办法
问题出现最近正在学习ASP.NET Core MVC,顺便弄了一个自己的个人小网站。基本上是开发一点,部署一点。不过,当我添加了Entity Framework之后,部署到IIS上却打不开了。页面提示一个500服务器错误就什么也没了。 :( Oops. 500 Internal Server Error 初步查询我在VS中调试的时候明明好好的,于是我翻看了一下ASP.NET Core关于原创 2016-09-30 18:24:46 · 10527 阅读 · 1 评论 -
C#学习笔记 事件
事件为委托提供了一种发布/订阅机制。声明事件的类被称为发行者类,其他类可以订阅发行者类中的事件。当发行者类触发其中的事件时,所有订阅该事件的类都会收到这个变化。在图形界面框架中,这种情况非常常见。事件发布者首先需要创建一个事件发布者类。该类包含一个委托,并有一个基于该委托的事件,还应该有一个可以触发事件的函数,以便订阅者可以在其他地方接收到这个事件。事件常常定义为一个包含事件发布者和事件消息传递的委原创 2015-11-12 12:09:09 · 506 阅读 · 0 评论 -
C#学习笔记 lambda表达式
匿名方法在使用委托的时候,除了将一个已存在的方法赋给一个委托之外,还可以使用匿名方法的方式。使用匿名方法的时候,需要一个delegate关键字,并且方法的参数列表要和委托定义的完全一样。//这里有一个匿名方法Func<int, int, int> Add = delegate (int a, int b){ return a + b;};Console.WriteLine($"操作的原创 2015-11-12 11:39:01 · 868 阅读 · 0 评论 -
C#学习笔记 字符串和正则表达式
字符串在C#中,字符串使用关键字string定义,该关键字其实是System.String类的缩写。string类有大量的方法,可以完成各种各样的事情。详情可参考MSDN。以下是一些基本操作。//创建字符串string str1 = "I like apples,";Console.WriteLine(str1);//追加字符串str1 += "but you love pears.";C原创 2015-11-12 14:24:05 · 682 阅读 · 0 评论 -
C#学习笔记 变量和常量
变量和常量原创 2015-11-02 21:51:26 · 725 阅读 · 0 评论 -
C#学习笔记 异步操作
同步操作默认情况下我们的代码都是同步操作。这种情况下,所有的操作都在同一个线程中,如果遇到需要长时间执行的操作或者是一个IO操作,那么代码可能会阻塞比较长的时间。在阻塞的这段时间里,无法进行其他工作,这是很不好的。这里是一个同步操作的例子。一个操作需要大约5秒时间,然后另一个操作好过去前一个操作的结果并显示。在这5秒钟时间里,线程会被阻塞,无法进行任何工作。private static string原创 2016-01-09 23:29:39 · 975 阅读 · 0 评论 -
C#学习笔记 任务操作
利用线程,可以方便地进行异步操作。但是线程模型有一个缺点,就是无法处理返回值。要在不同线程之间传递数据比较麻烦。任务则解决了这个问题。创建并执行任务有返回值和没有返回值的任务要创建一个没有返回值的任务,只需要向Task类的构造函数传递一个参数列表和返回值都为空的委托(也就是Action委托)即可。构造好一个Task之后,就可以调用Start方法开始执行任务,就像Thread上调用Start一样。这样原创 2016-01-06 23:21:44 · 1200 阅读 · 0 评论 -
C#学习笔记 线程操作
线程基本操作完整代码在这里:https://github.com/techstay/csharp-learning-note 。创建并使用线程使用线程执行任务要创建一个线程很简单,实例化一个System.Threading.Thread对象并向其构造函数传递一个无参无返回值的委托即可。创建完线程之后,线程并没有实际运行。要让其运行,需要调用其Start方法,这样会将其状态修改为就绪,可以随时被CPU原创 2015-12-25 22:14:07 · 525 阅读 · 0 评论 -
C#学习笔记 对象序列化
简单的序列化利用BinaryFormatter进行序列化有时候需要将对象保存到文件里、存储到数据库中或者通过网络传输到远程的计算机中,这个时候就需要将对象转化成字节流的形式,以便进行传输或者持久化。这个过程叫做对象的序列化,而把已经序列化的字节流重新包装成活动的对象的过程叫做反序列化。.NET提供了完善的对象序列化和反序列的机制,因此我们可以很方便地进行对象的序列化和反序列化操作。简单的序列化只需要原创 2015-12-24 23:31:06 · 623 阅读 · 0 评论 -
C#学习笔记 基本数据类型
C#学习笔记 基本数据类型原创 2015-11-02 21:26:35 · 2511 阅读 · 0 评论 -
C#学习笔记 控制流
C#学习笔记 控制流原创 2015-11-02 22:30:45 · 826 阅读 · 0 评论 -
C#学习笔记 常用的集合
C#学习笔记 常用集合原创 2015-11-02 23:27:06 · 796 阅读 · 0 评论 -
C#学习笔记 LINQ简单使用
LINQ是C#中的一项非常好用的功能,全程是语言集成查询Language Integrated Query。原创 2015-11-03 17:11:50 · 2145 阅读 · 0 评论 -
C#学习笔记 反射
Type对象要使用反射,首先要知道Type对象。Type对象包含C#对象的各种信息,例如名称,命名空间的名称等等。使用typeof 运算符,可以从一个类名获取Type对象。Type t = typeof(int);还可以在Object对象上调用GetType方法来获取一个Type对象。Type t = i.GetType();获得Type对象之后,就可以调用上面的方法和属性,来查看有关类型的信息了。原创 2015-11-08 22:30:05 · 522 阅读 · 0 评论 -
C#学习笔记 委托
委托定义委托有时候可能想要将一个方法传递给另一个方法。在C++中使用函数指针来实现,在JavaScript中由于函数也是对象所以直接可以在参数列表中传递。而在C#中需要使用委托。要使用委托,首先需要定义它。//定义一个接受两个int参数,返回一个int值的委托delegate int Operator(int x, int y);定义之后就可以创建它。创建委托需要一个方法签名与定义委托时候一样的方原创 2015-11-10 22:55:54 · 515 阅读 · 0 评论 -
Visual Studio 2015 的安装和使用
VS2015 是现在微软公司最新也是最强大的IDE,可以开发C#、C++、VB、Android、iOS等多种语言和平台的应用程序。而且,对应的免费版本VS2015 社区版 也出来了。如果只是为了初学或者是想尝试一下VS的同学,可以下载VS2015社区版来试用一下。下载和安装首先先去VS2015下载页面 先来下载VS2015社区版。下载完成之后点击安装。在安装选项里根据你的需要安装对应的功能。例如我主原创 2015-11-04 19:46:40 · 13983 阅读 · 0 评论