草庐IT

type-switch

全部标签

c# - "thread-safe type"到底是什么?我们什么时候需要使用 "lock"语句呢?

我阅读了所有关于线程安全类型和“锁定”语句的文档,但我仍然没有100%理解它。具体什么时候需要使用“lock”语句?它与(非)线程安全类型有何关系?谢谢。 最佳答案 想象一个类的实例,里面有一个全局变量。想象一下,两个线程同时对该对象调用一个方法,并且该方法更新内部的全局变量。变量中的值很可能会被破坏。不同的语言和编译器/解释器会以不同的方式处理这个问题(或者根本不处理......)但关键是你会得到“不希望的”和“不可预测的”结果。现在假设该方法在尝试读取或写入变量之前获得变量的“锁”。第一个调用该方法的线程将获得变量的“锁”,第二

c# - 如何将类型为 "Type"的变量传递给泛型参数

我正在尝试这样做:Typetype=Type.GetType(string.Format("Gestor.Data.Entities.{0},Gestor.Data",e.Item.Value));MetaDataUtil.GetColumnasGrid();但它不起作用,你知道我该怎么做吗? 最佳答案 你需要为此使用反射。varmethod=typeof(MetaDataUtil).GetMethod("GetColumnasGrid").MakeGenericMethod(new[]{type}).Invoke(null,nul

c# - 如何判断 Type 是否是静态类?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Determineifatypeisstatic重复Determineifatypeisstatic是否有我可以检查的属性/属性来查看System.Type是否是静态类?我可以通过测试Type有静态方法,并且除了从System.Object继承的实例方法之外没有实例方法,我可以间接地做到这一点,但是它没有感觉干净(我偷偷怀疑我遗漏了什么,这不是静态类的足够严格的定义)。在明确告诉我这是一个静态类的类型上,我是否遗漏了什么?或者staticclass是c#语法糖,没有办法在IL中表达它?谢谢体重

c# - 在 C# 中使用 "Type"对象类型转换对象

到目前为止,这对我来说有点棘手。我想知道是否可以使用System.Type对象对对象进行类型转换。我在下面说明了我的意思:publicinterfaceIDataAdapter{objectTransform(objectinput);TypeGetOutputType();}publicclassSomeRandomAdapter:IDataAdapter{publicobjectTransform(objectinput){stringoutput;//Dosomestufftotransforminputtooutput...returnoutput;}publicTypeGet

C# Switch 语句中的大小写敏感性

我正在使用switch语句并想知道如何在输入值时忽略大小写敏感度。这是我的代码:usingSystem;namespaceSwitchStatements{classMainClass{publicstaticvoidMain(string[]args){Start:Console.WriteLine("PleaseInputtheGrade");chargrade=Convert.ToChar(Console.ReadLine());switch(grade){case'A':Console.WriteLine("ExcellentWork!");break;case'B':Cons

c# - 变量 : a Type or a keyword

MSDN将var归类到Types下。variablesthataredeclaredatmethodscopecanhaveanimplicittypevar“隐式类型var”在这种情况下是什么意思?严格来说,如果我有它可以向其他程序员解释。我能说吗?var是一个类型,或者我必须说;var是一个关键字,指示编译器自行确定类型。注意:这并不是要开始讨论var,也不是要学习var的使用。一劳永逸,我想确切地知道如何描述它,而msdn有点令人困惑,仅此而已。 最佳答案 var是contextualkeyword-连同yield,add和g

c# - 在 switch 语句中的默认情况下抛出 NotImplementedException

如果我有所有可能的枚举类型的案例,我是否应该在default上抛出一个NotImplementedException()? 最佳答案 如果您正在寻找一个值,根据定义,该值必须对应于枚举的值,而您收到了其他内容,这绝对是一个无效参数。但现在您必须考虑上下文。该方法是私有(private)的,并且只能由您的类库或应用程序的成员访问吗?如果是,那么这是一个编码错误,一开始就不应该发生。断言和失败。另一方面,如果它是一个公共(public)或protected方法,并且可以被使用您的库的客户端访问,那么您绝对应该抛出一条有意义的消息(最好是

c# - 带整数表达式的 switch case

我正在尝试使用switchcase而不是IfElse语句,在其中我必须首先检查字符串的长度,并且根据它我必须对它进行区分。switch(mystring.length){case这是我想做的事情,但不知道如何放置在case前面,因为根据switchcase规则,这是不合适的。 最佳答案 在你的特定情况下使用if/else总是更好,使用switch语句你不能在情况下放置条件。看起来您正在检查范围,如果范围不变,那么您可以尝试以下(如果您想使用switch语句)。intLength=mystring.Length;intrange=(L

c# - LINQ to Entities/LINQ to SQL : switching from server (queryable) to client (enumerable) in the middle of a query comprehension?

在许多情况下,我想在服务器端进行一些过滤(有时是投影),然后切换到客户端以执行LINQ提供程序本身不支持的操作。天真的方法(这基本上就是我现在所做的)是将其分解为多个查询,类似于:varfromServer=fromtincontext.Tablewheret.Col1=123wheret.Col2="blah"selectt;varclientSide=fromtinfromServer.AsEnumerable()wheret.Col3.Split('/').Last()=="whatever"selectt.Col4;但是,很多时候,这带来的代码/麻烦多于它的实际值(value)

c# - "The type or namespace name ' 引用System.Xml.dll时XmlSerializer ' could not be found"错误

我已经在这上面浪费了几个小时:XmlSerializerserializer;是的,using在那里,引用在那里,我在VS2010中使用.NET4.0制作了整个解决方案,所以它不是那些东西。如果我进入对象资源管理器,我可以在正确的命名空间中找到我想要的XmlSerializer类,但是如果我尝试在我的代码文件中键入上面的行并进行编译,我会得到可怕的Thetypeornamespacename'XmlSerializer'couldnotbefound(areyoumissingausingdirectiveoranassemblyreference?)死亡警告。我也没有在Intelli