最新发布

宇托 CSharp 11 0

泛型参数在强类型编程语言中,应该算一个很不错的语法。至于泛型参数的约束,在Java和C#里都有。在C#中,用cs#where来约束泛型参数。能使用的大概有以下几种类型:cs#where T : struct:泛型参数cs#<T>必须是值类型(cs#struct或者cs#enum)cs#where T : class:泛型参数cs#<T>必须是引用类型cs#where T : new():泛型参数cs#<...

宇托 CSharp 11 0

在C#中,cs#is和cs#as主要用于类型的判断和赋值。is关键字主要用于类型判断cs#is关键字是用来检查一个变量或值是否是类或者接口的实例。是则返回cs#true,不是返回cs#false。如下代码:Object[] values = new Object[] { "", 1, 1.5 }; for (int i = 0; i < values.Length; i++) { if (valu...

宇托 VSCode, Language 23 0

因为是在日语系统上安装的VSCode,所以默认界面语言是日语。但实在是不习惯用日语,所以在网上找了一下方法,把界面语言改成了英语。VSCode支持的界面语言目前VSCode支持的界面语言如下:界面语言定义英语en简体中文(大陆)zh-CN繁体中文(台湾)zh-TW法语fr德语de意大利语it日语ja韩语ko俄语ru西班牙语es修改方法一在快捷方式后加上--locale=语言就行,如code --locale=en。修改方法二1. ...

宇托 CSharp 13 0

之前总是不太理解C#中接口和抽象类的区别和相同点,在网上找了找,然后看了书,大体理解了。接口与抽象类的相同点两者都不能实例化。两者都可以包含未实现的方法和属性声明。两者都派生类必须实现未实现的方法和属性。接口与抽象类的具体区别接口可以定义属性,方法,事件,索引器,但不能定义字段(包括常量,静态字段,字段);而抽象类的可以,要注意的是静态字段不可定义成cs#abstract和cs#virtual的。接口只能定义属性,方法,事件,索引...

宇托 CSharp 13 0

cs#sealed关键字在C#中主要用于以下两个方面:在类声明中使用sealed可指定该类为密封类,防止其它类继承此类。在方法声明中使用sealed可指定该方法为密封方法,防止子类覆盖此方法。下面来分别介绍一下密封类和密封方法。密封类密封类无法被其它类继承,如果试图用一个密封类来做为其它类的基类,会出现编译错误。正因为如此,抽象类不能申明为密封类,因为抽象类总是希望被继承的。在C#中,字符串(cs#System.String)是一...

宇托 CSharp 11 0

C#中的访问修饰符关键字有四个:cs#public、cs#protected、cs#internal、cs#private。如果用访问级别来区别可以分为五个级别:cs#public、cs#protected internal、cs#protected、cs#internal、cs#private。访问修饰符能用于类,接口,结构,枚举,委托,字段,属性以及函数。在没有任何访问修饰符时,默认为cs#internal。其大概说明如下表:...

宇托 CSharp, static 11 0

在C#中,static这个应该是用得比较多的。它能用于以下这些地方:用于类的申明。可以申明类为静态类,静态类只能有静态构造函数、静态函数、静态字段、静态属性和常量。用于构造函数的申明,申明为静态构造函数。静态构造函数不能有参数和访问修饰符(如:cs#public、cs#private )。用于函数的申明,申明为静态函数。用于字段的申明,申明为静态字段。用于字段的属性,申明为静态属性。现在分别说说静态类,静态构造函数,静态函数,静态...

宇托 CSharp, ValueType, ReferenceType 14 0

在C#中,所有的东西都是对象。但在对象类型中,又分为值类型和引用类型。两者的主要区别是:值类型的内存空间分配在栈上;而引用类型的内存空间分配在堆上。栈的内存分配是自动释放;而堆的内存是由GC(垃圾回收)来释放值类型存取速度快,引用类型存取速度慢。类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或引用值类型继承自System.ValueType(ValueType是继承自System.Object的),引用类型继承自Sy...

宇托 Python, PyInstaller 38 0

在之前我总是用python#__file__来取得执行文件的目录,在用PyInstaller生成单一文件之后,发现它的目录不对了。因为PyInstaller生成单一文件之后,实行时它会把文件解压到一个临时文件夹,然后再执行。所以目录很用python XXXX.py就有些不同了。在网上找了一段代码,验证了一下自己的判断,然后改成用python#sys.argv[0]了。测试代码(TestPath.py)如下:import os, s...

宇托 none 10 0

我已经在ThoughtWorks工作了12年。是不是有点不可思议?回首我的职业生涯,我想写一写我在这些年中经历的困难,以及总结得到的12个非常重要的经验教训。虽然我只选择了12个,但其实远远不止这个数字,但是我觉得12年12个经验教训更有韵味。1.工具不能代替思考在我多年的咨询工作和与许多组织和管理者的共事中,我发现了修复问题的共同套路,那就是管理人员相信工具可以“解决”给出的问题。当问题域被理解透彻,并且不可能有很多例外,以及每...

宇托 Oracle, Synonyms 17 0

在Oracle中,一般是用Schema来隔离各个用户之间的数据。当然如果附于其它用户访问权限,其它用户也可以通过Schema名来访问其它Schema下数据库对象。Synonyms(同义词)就是给数据库对象取一个别名。这个数据库对象可以是用户自己Schema下的,也可以是别的用户Schema下的。使用Synonyms(同义词)有以下好处:节省数据空间隐藏一个数据库对象的名字和拥有者隐藏分布式数据库中远程对象的位置简化SQL语句它的相...

宇托 CSharp 15 2

C#中的默认参数相对Java来说是一个很不错的语法。当然可变参数cs#params也不错,Java中也有,其语法是java#...。那么两者在使用上有哪些限制和注意点呢?先说说默认参数默认参数必须放在所有必须参数之后。因为默认参数的设值方式,所以默认参数不能用cs#out和cs#ref来修饰。默认参数在调用时如果能匹配多个函数,会优先调用默认完全配置的那个函数,如果都是不完全匹配,会编译出错。可变参数可变参数必须放到所有参数之后。...

宇托 none 11 0

如果你正在阅读这篇文章,那么你很有可能和我一样,也是<span class="wp_keywordlink">程序员</span>。无论你是自由职业者还是合同工,时间是你最宝贵的资源之一。不过,开发人员常常发现自己被困在项目中,因为不注重管理他们的时间。这篇文章提供了可提高工作效率的可操作技巧,以及如何跟踪你在编码时浪费的时间。1.你有优先安排任务吗?就像那些对自己的时间表有控制的人一样...

宇托 CSharp 12 0

在C#中,我经常用到cs#ref和cs#out这两个关键字,但对其区别也还不是很清楚。基本上来说,C#函数参数的传递方法为分两种,一种转值,另一种是传址。对于不加任何修饰的函数参数来说,它都是传值的。传值又分为两种,一种是传对象值,另一种是传地址值。对于值类型cs#System.ValueType(包括这两种cs#struct和cs#enum,C#中的c#int、c#double等基本类型都是cs#struct)来说是传对象值,对...

宇托 none 48 0

之前看BING的SEO推荐设置里,我没有设置页面语言。它推荐我设置content-language。在网上找了一下,设置方法很简单。直接在页面里加上下面的代码就行。<meta http-equiv="content-language" content="zh-CN" />上面在代码中的zh-CN表示语言和国家。如果需要设置其它语言和国家,也可以。把一些常用的附到下面吧。常用语言简...