注:本文为个人学习摘录,原文地址:http://www.cnblogs.com/gjhjoy/p/3556709.html 恐怕比较一下volatile和synchronized的不同是最容易解释清楚的。volatile是变量修饰符,而synchronized则作用于一段代码或方法;看如下三句get代码:int i1; int geti1() {return i1;} volatile int i2; int geti2() {return i2;} int i3; synchronized int geti3() {return i3;}geti1()得到存储在当前线程中i1的数...
1、重载(overload): 在同一个作用域(一般指一个类)的两个或多个方法函数名相同,参数列表不同的方法叫做重载,它们有三个特点(俗称两必须一可以):方法名必须相同 参数列表必须不相同 返回值类型可以不相同例如: public void Sleep() {Console.WriteLine("Animal睡觉"); } public int Sleep(int time) {Console.WriteLine("Animal{0}点睡觉", time);return time; } 2、重写(override):子类中为满足自己的需要来重复定义某个方法的不...
一、 /* * this关键字 * this关键字引用类的当前实例 * 注意:静态成员方法中不能使用this关键字,this关键字只能在实例构造函数、实例方法或实例访问器中使用 */ /* * base关键字 * base关键字用于从派生类中访问基类的成员; * 指定创建派生类实例时调用基类构造函数; * 调用基类上已被重写的方法 * 注意:不能从静态方法中使用base关键字,base关键字只能在实例构造函数、实例方法或实例访问器中使用 */ 二、 C#base和this的区...
//*调用服务器API(获取可以处理的文件) //1、使用JSON通信协议(调用[待化验任务API]) String retData = null; {JToken json = JToken.Parse(Global.jsonTemplate);json["actionName"] = "待化验任务API";json["action"] = "awaitLaboratory";json["paramInfo"]["kindId"] = Global.ExeCodeColData;//种类编码//json["paramInfo"]["lab_orgdm"] = Global.ExeCodeColData;//设备机构代码String jsonStr = JsonConvert.SerializeO...
什么是枚举?枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。 定义枚举:public enum Direction {[Description("东")]East,[Description("南")]South,[Description("西")]West,[Description("北")]North } 默认枚举的int值从零开始,枚举的下一项int值会自动累加上一个枚举项的值。例如:East = 1,则South=2, West=3,以此类推。。。 或East = 4,则...
private TcpListener _listener;#region 初始化 listener public override void Init(){try{DevInfo.Read();var localaddr = IPAddress.Parse(Ip);var port = Convert.ToInt32(port);_listener = new TcpListener(localaddr, port);}finally{StatusChangedEvent?.Invoke(Status);}} #endregion开始运行 public override void Start(){Init();_listener?.Start();Task.Factory.StartNew(MonitTcpClientConnect); }...
原文链接:http://www.cnblogs.com/xiao_haun/archive/2011/01/06/1928974.html DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数的必要调用信息。 DllImport属性应用于方法,要求最少要提供包含入口点的dll的名称。 DllImport的定义如下:[AttributeUsage(AttributeTargets.Method)] public class DllImportAttribute: System.Attribute { public Dl...
C#中HttpWebRequest的用法详解?HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择。它们支持一系列有用的属性。这两个类位 于System.Net命名空间,默认情况下这个类对于控制台程序来说是可访问的。请注意,HttpWebRequest对象不是利用new关键字通过构 造函数来创建的,而是利用工厂机制(factory mechanism)通过Create()方法来创建的。另外,你可能预计需要显式地调用一个“Send”方法,实际上不需要。接下来...
原文链接:http://www.cnblogs.com/nightly/archive/2013/05/16/3081794.html在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结。 一、DataTable简介 (1)构造函数 DataTable() 不带参数初始化DataTable 类的新实例。 DataTable(string tableName) 用指定的表名初始化DataTabl...
原文链接:http://www.cnblogs.com/lifedecideshappiness/p/9857449.html1.实现代码using System;namespace NameofUsage {/// <summary>/// C# nameof用法/// </summary>internal class Program{private static void Main(){Console.Title = "C# nameof用法";Person p = new Person();Console.WriteLine(nameof(p));Console.WriteLine(nameof(p.Name));Console.WriteLine(nameof(Person.CreateDateTime));Console.ReadKey();}}...
我知道有关于堆栈溢出的一些问题已经存在,但我没有找到任何回答我的具体问题.我来自java开发背景,从不打扰使用get;组;从C#到现在的方法. 我有以下代码class Test {public int test { get; set; } }在我的主要功能中,我可以声明一个新的测试并使用t.Test = 5并且工作正常;但是,当我将公众切换到私人时,我无法访问我的获取;并设定;方法……但是当我使用时(与Java类似的方法)class Test {private int test;public int getTest(){retur...
我想将C#用于我正在构建的应用程序,但该应用程序大量使用自动化(即Excel,Word). 将C#用于这样的应用程序是否可行?过去,使用C类型语言来处理带有空参数等参数列表的事情是一场噩梦. 有什么技巧可以让事情变得更容易,或者我应该坚持使用VB.NET?解决方法:这取决于您使用的语言版本.在.Net 4中,C#支持命名参数(可选参数). VB.Net一直都有这个.如果您不使用.Net 4,我建议使用VB.Net作为互操作位 – 请参阅this post from Scott Hansel...
在这次的机房重构中相比第一次的机房我添加的一部分的功能,其中“动态余额”就是我这次添加的新功能。 什么是动态余额? 用户界面中显示该用户卡内的剩余金额,而且这个剩余金额会随时间的流失不断减少 ,这就是“动态余额” 动态余额的关键: 1.利用timer控件 2.计算相差的时间 3.连接数据库,查询上次下机时剩余的余额 4.利用timer控件的 Tick 事件来不断更新显示余额控件的值 一般来...
string.Join分为以下五类,用法都有讲解。 HashSet<string> hs = new HashSet<string>(); hs.Add("111"); hs.Add("222"); hs.Add("333"); var str = string.Join(",", hs); Console.WriteLine(str); #region // 摘要: // 串联集合的成员,其中在每个成员之间使用指定的分隔符。 // 参数: // separator: // 要用作分隔符的字符串。只有在 values 具有多个元素时,separator...
在应用程序的OnStart()事件期间,如果此方法不触及UI线程,那么调用Async方法是否是一个很好的做法,该方法会对服务器连接和数据交换进行一些繁重的工作?是否在此事件触发时正确初始化了应用程序的所有组件,以便Async方法能够执行?protected override async void OnStart() {sendHttpRequestAsync(); }private async void sendHttpRequestAsync() {await ... }解决方法:避免在除事件处理程序之外的任何事物上使用async void. 参考As...