草庐IT

object_exists

全部标签

c# - 对 Object.ToString() 的冗余调用

我有一个函数,除其他外,它接受一个声明为intprivateCount的参数。当我想在此参数上调用ToString()时,ReSharper会将其灰显并将其标记为冗余调用。因此,尽管我很好奇,但我删除了ToString(),代码仍然可以构建!C#编译器如何允许这样做,其中str是一个字符串?str+=privateCount+... 最佳答案 string的+运算符被重载以调用String.Concat传入表达式的左侧和右侧。因此:stringx="123"+45;编译为:String.Concat("123",45);由于Stri

c# - 为什么这个程序会出错? `Object synchronization method was called from an unsynchronized block of code`

这段代码有什么问题?我收到“从未同步的代码块调用对象同步方法”。我在谷歌上发现了一个结果,说我可能在锁定之前释放了一个互斥体,但根据我的输出,情况并非如此。这是互斥锁代码,中间没有其他代码。-edit-对不起大家,贴错了。我的输出1W1W2W代码usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Threading;namespacesqliteTest{classProgram{staticvolatileMutexmut1=newMutex();staticvolatileMutexmut

c# - List<T> 和 List<object> 的区别?

既然一切都继承自object,那么List之间有什么区别呢?和List?优点?缺点? 最佳答案 如果您插入int进入List,它将被装箱。如果将其插入List,它不会被装箱(对于任何值类型都是如此,将int替换为类型的名称)。同样,从List中检索值,拆箱会发生,但不会发生List.List是强类型的,List不是(所以你失去了编译时的安全性,并且可能会遇到运行时爆炸)。 关于c#-List和List的区别?,我们在StackOverflow上找到一个类似的问题:

c# - 为什么 .NET 中的每个类都继承自 Object?

我不明白...为什么他们需要一个共同的基地? 最佳答案 这个问题预设了一个谎言。它们不需要通用的基类型。这个选择并不是迫不得已。这是出于为客户提供最佳值(value)的愿望。在设计类型系统或与此相关的任何其他事物时,有时您会到达决策点——您必须决定X或非X。公共(public)基类型或非公共(public)基类型。当发生这种情况时,你权衡X的成本和yield以确定净值,然后你权衡非X的成本和yield以确定净值,然后选择值(value)更高的那个。具有通用基类型的yield大于成本,由此产生的净yield大于没有通用基类型的净yie

c# - 将 System.Object 作为类型过滤器发出的一般 catch 子句在现实世界中有何影响?

我记得有一次听说抛出System.Exception(或扩展它的对象)以外的某种类型的对象在技术上是合法的CIL,尽管C#没有支持它的功能。所以我有兴趣看到以下C#代码:try{thrownewException();}catch(Exceptionx){try{throw;}catch{Console.Write("yes");}}编译为以下CIL:.try{IL_0000:newobjinstancevoid[mscorlib]System.Exception::.ctor()IL_0005:throw}//end.trycatch[mscorlib]System.Exceptio

c# - 数字必杀技 : Where does a callvirt of a non-existent method end up?

我在其基类中标记为抽象的库类上调用属性集访问器。现在在运行时我force应用程序针对另一个版本的库运行,其中类仅实现基类的底层接口(interface),但不是从它派生的。有趣的是,.NET将运行代码,但设置该属性没有任何效果。幕后发生了什么?违规代码:MyDbParameterparam=newMyDbParameter();param.ParameterName="p";Console.Out.WriteLine("ParameterName:"+param.ParameterName);库2.0(已编译)publicsealedclassMyDbParameter:System.

c# - 为什么可空值序列的 Linq-to-Objects 总和本身可以为空?

像往常一样,int?表示System.Nullable(或System.Nullable`1[System.Int32])。假设您在内存中有一个IEnumerable(例如List),我们称它为seq;然后你可以找到它的总和:varseqSum=seq.Sum();当然这会转到扩展方法重载int?IEnumerable.Sum()(documentation)这实际上是System.Linq.Enumerable上的静态方法.但是,该方法永远不会返回null,那么为什么返回类型声明为Nullable?即使在seq的情况下是一个空集合,或者更一般地说,是一个所有元素都是null的集合类型

c# - "Object cannot be cast from DBNull to other types"

当我的网站执行到以下代码时,它会崩溃并出现如下异常:System.InvalidCastException:ObjectcannotbecastfromDBNulltoothertypes.为了简洁起见,我只展示了相关代码(我得到的是一个4000+LOC文件)。if(dr["STAGE"]isDBNull){dto.Stage=1;//Thisisthelinethrowingtheexception,accordingtostacktrace}else{dto.Stage=Convert.ToInt32(dr["STAGE"]);}这里,dr是一个DataRow对象,它是对数据库的查

c# - 区分大小写 Directory.Exists/File.Exists

有没有办法让Directory.Exists/File.Existssince区分大小写Directory.Exists(folderPath)和Directory.Exists(folderPath.ToLower())都返回true?大多数时候这无关紧要,但我使用的宏似乎在路径与大小写不匹配100%时不起作用。 最佳答案 由于Directory.Exists使用FindFirstFile不区分大小写,不。但是你可以PInvokeFindFirstFileExadditionalFlags参数设置为FIND_FIRST_EX_CA

c# - WCF,BasicHttpBinding : Stop new connections but allow existing connections to continue

.NET3.5、VS2008、使用BasicHttpBinding的WCF服务我在Windows服务中托管了一个WCF服务。当Windows服务关闭时,由于升级、定期维护等,我需要优雅地关闭我的WCF服务。WCF服务的方法最多可能需要几秒钟才能完成,典型的数量是每秒2-5次方法调用。我需要以允许任何先前调用方法完成的方式关闭WCF服务,同时拒绝任何新调用。通过这种方式,我可以在大约5-10秒内达到安静状态,然后完成Windows服务的关闭周期。调用ServiceHost.Close似乎是正确的方法,但它会立即关闭客户端连接,而无需等待任何正在进行的方法完成。我的WCF服务完成了它的方法