Tag: 关键字

是获取SQL关键字的编程方式(保留字)

我需要validationSQL列的名称 ,该列是以编程方式创建的… 应该有2个validation规则: 名称不应该是C#关键字 Name不应该是SQL关键字(SQL Server 2008 R2) 第一条规则的解决方案很好: CSharpCodeProvider类具有IsValidIdentifier方法,该方法使validation的实现变得容易。 (例如: string myColumnName = “blabla”; var isValid = _cSharpCodeProvider.IsValidIdentifier(myColumnName); ) 第二条规则的解决方案是一个愚蠢的冗长: 我发现谷歌搜索的唯一方法是从MSDN中获取关键字- 保留关键字(Transact-SQL)SQL Server 2008 R2 要构建一个string []属性,它将返回所有这些关键字…… (例如: public static class SqlReservedKeywords { public static string[] SqlServerReservedKeywords { get { return SqlServerKeywords; } } private static readonly string[] SqlServerKeywords = new[] { “ADD”,”EXISTS”,”PRECISION”, //. […]

‘as`和`is`的真正用途

我曾经使用或者使用C#或任何支持该关键字的语言。 你用它做什么用的? 我不是说我如何使用它我的意思是你真的需要它? 我也在一个相当大的c ++项目中没有进行类型转换(我很自豪)。 所以考虑到我几乎从不打字,为什么我需要关键字as或是?

Visual Studio默认自动完成以使用系统类型名称

奇怪的问题,但我的老板是一个触摸旧学校,并坚持我们的编码标准,我们不使用系统类型的C#缩写,他喜欢我们使用完整的系统名称。 他喜欢冗长的东西,我很乐意遵守标准。 然而,在几个月之后开始感谢我的事实是,visual studio在完成代码时不喜欢遵守标准。 所以,如果我输入: KeyValuePair MyValue = new Visual Studio将完成剩下的工作: KeyValuePair 实现接口或抽象类时,情况更糟。 这是一个小小的不便,但也有一个,我想知道在过多的VS选项中是否有一个强制使用完整的系统类型名称。 我相信这可以通过像Re-Sharper这样的东西来解决,但遗憾的是我无法获得许可证。 编辑 是的,他鄙视使用var关键字。 我应该说明他的实际推理,这是因为我们主要是在C#中发展,但很有可能需要用C语言和目标C写作,所以他不希望我们过于依赖CLR的缩写,他也说它会导致在移植代码时减轻痛苦,这在某种程度上对我有意义。 他的主要目的是避免类型错误匹配Int16,Int32和Int64等类型但是因为我们遵循标准他更喜欢String over string。 平心而论,如果不是一个老式学校,他是一个非常好的程序员,但他对引擎盖下的事物的知识远远超过我的知识,而我所知道的90%的开发者来自游戏背景,我想让你欣赏更精细更多地指出一点。 我总是被一个很好的托管.NET框架宠坏了。 非常感谢 保罗

只使用C#关键字,您可以制作的最长法律声明块是什么?

我在C#中编写了一些代码,我发现自己在编写: return new MyClass(… 当我注意到return和new都是C#关键字时。 所以我想知道C#中最长的关键字合法序列是什么。 我能想到的只有: internal static override void MyFunc(… internal static override void都是关键字。 你能想到更长的关键词序列吗? 注意:这个问题确实没有意义。 我只是希望在火上倒一些乐趣:-)

使用“is”关键字和“null”关键字c#7.0

最近我发现,以下代码在VS2017中编译并按预期工作。 但我找不到任何关于此的主题/文档。 所以我很好奇使用这种语法是否合法: class Program { static void Main(string[] args) { var o = new object(); Console.WriteLine(o is null); o = null; Console.WriteLine(o is null); Console.ReadLine(); } } 顺便说一句,这在VS2015中无效

缺少C#中的’with’关键字

我今天正在查看Infragistics控件库的在线帮助,并看到一些VB代码使用With关键字在选项卡控件上设置多个属性。 自从我完成任何VB编程已经将近10年了,我几乎忘记了这个关键字甚至存在。 由于我还是比较新的C#,我很快就去看它是否有类似的结构。 可悲的是,我找不到任何东西。 C#是否有一个关键字或类似的构造来模仿VB中With关键字提供的function? 如果没有,是否有技术原因导致C#没有这个? 编辑:我在询问我的问题之前搜索了现有的条目,但没有找到Ray提到的那里( 这里 )。 那么,为了改进这个问题,有没有技术上的原因为什么C#没有这个? Gulzar将其钉住了 – 不,没有技术上的理由说明为什么C#没有With关键字。 这是语言设计师的设计决定。

什么是“原生”和“文字”关键字

我在C#文章中多次使用原生和文字 “关键字”。 他们的意思是什么? 例子: string.Empty文章 : Empty常量保存空字符串值。 我们需要调用String构造函数,以便编译器不会将其标记为文字 。 将其标记为文字将意味着它不会显示为我们可以从本机访问的字段。 C#vs Java维基百科文章: 简单/原始类型 这两种语言都支持许多内置类型,这些类型按值而不是通过引用进行复制和传递。 Java将这些类型称为原始类型,而它们在C#中称为简单类型。 简单/原始类型通常具有来自底层处理器体系结构的本机支持。

要反序列化的对象有一个C#关键字

在按原样定义JSON的情况下,为了将其反序列化为对象,我需要在我的类上创建一个名为“event”的属性,它是一个C#关键字。 还有另一种方法可以告诉它字段名称是什么吗? 这是JSON的一个例子: {event:123 data:{“data”:“0D0401”,“ttl”:“60”,“published_at”:“2014-04-16T18:04:42.446Z”,“id”:“48ff6f065067555031192387”}} 以下是因为关键字而无法编译的类: public class Event { public int event { get; set; } public EventDetail data { get; set; } } public class EventDetail { public string data { get; set; } public string ttl { get; set; } public DateTime published_at { get; set; } public string id { get; […]

使用ref与C类#

我想给我正在制作的课程提供一个链接列表。 我希望该类写入该列表(例如,通过.addLast())。 我应该使用ref关键字吗? 我对在C#中使用ref和out关键字的位置感到有些困惑,因为所有类都是在堆上动态分配的,我们实际上使用指针进行大多数操作。 当然, out和ref关键字对于原语和结构是有意义的。 另外,如果我不直接发送列表,但发送包含列表的类? (这是internal和需要的),我还需要使用ref吗? 或者如果我在函数之间传递它,ex: void A(ref LinkedList list){ B(list); } void B(ref LinkedList list){ _myList = list; }

关于虚拟/新/覆盖的困惑

我对virtual / new / override事情有点困惑。 这是一个例子: class A { public virtual void mVVirtual() { Console.WriteLine(“A::mVVirtual”); } } class B : A { public virtual void mVVirtual() { Console.WriteLine(“B::mVVirtual”); } } class C : B { public override void mVVirtual() { Console.WriteLine(“C::mVVirtual”); } } class Test { static void Main() { B b1 = new C(); […]