第二章 理论基础-公用语言 运行环境既然你已经具有了C#全面的印象,我也想让你了解NGWS runtime的全貌。C#依靠由NGWS提供的运行时;因此,有必要知道运行时如何工作,以及它背后所蕴含的概念。所以,这一章分为两部分——它们是所有的概念和使用的基础。两部分的内容虽然有些重叠,但它有助于加深理解正在学习的概念。 2.1 NGWS RuntimeNGWS和NGWS Runtime为你提供了一种运行时环境。该运行时管理执行代码,并提供了使编程更容易...
文章目录一、操作符概览二、操作符的本质三、优先级与运算顺序四、各类操作符的示例1.基本操作符①. 成员访问操作符②f(x) 方法调用操作符③a[x] 元素访问操作符④x++ x-- 后置自增、自减操作符⑤typeof 操作符⑥default 操作符⑦new 操作符⑧checked & unchecked 操作符⑨delegate 操作符⑩sizeof 操作符?-> 操作符2.一元操作符①&x 与*x 操作符②+ - 正负操作符 与 ~ 取反操作符③! 取非操作符④++x --x 前置自增自减操作符⑤(...
C#语言基础本章将介绍一些C#语言的基础知识。本章和接下来的两章中的所有程序和代码片段都可以作为交互式示例在LINQPad中运行。阅读本书时使用这些示例可以加快你的学习进度。在LINQPad中编辑执行这些示例可以立即看到结果,无须在Visual Studio中建立项目和解决方案。若要下载这些示例,请点击LINQPad中的Samples选项卡,然后点击“Download more samples”。LINQPad是免费程序,详见http://www.linqpad.net 2.1 第一个C#程序 以下...
我之前写的https://www.cnblogs.com/pu369/p/12365383.html文章,已实现用C#和Selenium 操控浏览器。下面总结一下常用操作(节选自https://www.jianshu.com/nb/10377047) 1、生成driver实例 可以用ChromeDriverService.CreateDefaultService()和ChromeOptions()进行配置var driver = new OpenQA.Selenium.Chrome.ChromeDriver()2、退出driver.Quit():在完成操作后,同时关闭浏览器窗口和Weddriver会话3、导航 //访问百度driver...
有了上一节画矩形的基础,画圆形就不要太轻松+EZ:)所以,本节在画边线及填充上,就不做过多的讲解了,关注一下画“随机椭圆”、“正圆”、“路径填充”的具体实现就好。与画矩形相比较,画椭圆与之完全一致,没有任何特别之处。 在画矩形时,我们使用:System.Drawing.Graphics.DrawRectangle(Brush brush, Rectangle rect); System.Drawing.Graphics.FillRectangle(Brush brush, Rectangle rect);在画圆形时,我们使用:System....
一、单例模式 我们先来看看两种创建单例模式的示例代码。 1、饿汉式 饿汉式创建单例模式是在程序里面直接初始化了一个对象实例:class Good {/// <summary>/// 私有的静态变量,直接初始化/// </summary>private static Good Instance = new Good();/// <summary>/// 私有的构造函数/// </summary>private Good(){}/// <summary>/// 获取静态实例的静态方法/// </summary>/// <returns></returns>public static Good GetInstance(...
一、前言 在C#中,由于有了垃圾回收机制的支持,对象的析构和以前的C++有了很大的不同,这就要求程序员在设计类型的时候,充分理解.NET的机制,明确怎样利用Dispose方法和Finalize方法来保证一个对象正确而高效地被析构。 二、Dispose方法的功能 我们在讲解有关using的用法时,已经介绍了Dispose方法。正是因为垃圾回收机制掩盖了对象内存真正被回收的时间,考虑到很多情况下程序员扔希望在对象不再被使用的时候进行一些清理工作,...
【学习资料】《C#图解教程》(第13~14章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu.com/s/1mhOmBG0其他> 委托与事件详解Part1:http://www.tracefact.net/tech/009.html> 委托与事件详解Part2:http://www.tracefact.net/tech/029.html 【内容】 委托(Delegate)定义:类似C++的函数指针 委托多播 委托绑定函数及执行原理事件(Event)定义:类似 字段与属性 的关系 事件访问器(...
【学习资料】《C#图解教程》(第6章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu.com/s/1mhOmBG0 【内容】 const readonly static readonly 三者比较 【笔记】const编译时常量 类的常量 只能在声明时赋值readonly运行时常量 对象的常量 可以在 声明时 赋值(与常量一样),或 构造函数中 赋值static readonly运行时静态常量 类的常量 可以在 声明时 赋值(与常量一样),或 静态构造...
【学习资料】 > 在线文档 官方文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/ 菜鸟教程(高级教程):https://www.runoob.com/csharp/csharp-tutorial.html > 视频教程 腾讯学院、Siki学院 > 书籍 《C#图解教程》(第17章):https://www.cnblogs.com/moonache/p/7687551.html 【学习内容】 > 菜鸟教程:高级教程部分(泛型)> 《C#图解教程》(第17章) ...
【学习资料】 > 在线文档 官方文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/ 菜鸟教程(高级教程):https://www.runoob.com/csharp/csharp-tutorial.html > 视频教程 腾讯学院、Siki学院 > 书籍 《C#图解教程》(第6章):https://www.cnblogs.com/moonache/p/7687551.html 【学习内容】 > 菜鸟教程:高级教程部分(属性、索引器)> 《C#图解教程》:第...
传送门:https://www.cnblogs.com/moonache/p/6063051.html 参数类型值参:形参改变不影响实参 引用参数(ref):形参改变,实参也跟随改变 class C {public int value = 0; } // 实参和形参是2个变量,但指向同一个对象 void changeC1(C c) {c.value = 10;c = new C(); // new之后,形参c指向新的对象c.value = 30; } // ref : 形参是实参的引用,是同一个变量 void changeC2(ref C c) {c.value = 10;c = new C(); // new之...
模拟实现类和对象 self 关键字的作用和 C#当中的 this 关键字的作用是类似,都表示当前“类”的对象 调用方法用冒号“:”--初始化表(类) Person = {name, age}--模拟构造方法,(可以在该方法中初始化对象字段) function Person:New()--初始化一个新表(对象)local obj = {}--将当前类作为新表的元表setmetatable(obj, Person)--设置索引,使新表能访问到旧表Person.__index = Person--当调用New方法时,返回新表(实例化对象)...
这个问题已经在这里有了答案: > custom serializer for just one property in Json.NET 3个我正在为一个域建模,并且对于少数几个属性,即使它们的值很简单,我也不想使用内置的整数(例如int)或非常普通的类型(例如System.Guid). 因此,我介绍了一些简单的“包装”类型.结合使用隐式运算符,我对结果感到满意:class Order {public Price Price { get; set; } }order.Price ...
我是温莎城堡的新人,正在尝试掌握基本知识… 我有以下代码…namespace WindowsBash.Models {public interface IShouter{string Display();}public class Shout : IShouter{private IMessage _message;public Shout(IMessage message){_message = message;} public string Display(){return _message.TheMessage();}}public interface IMessage{string TheMessage();}public class MessageHello : IMessage{public string Th...