草庐IT

explicit-conversion

全部标签

c# - 什么时候应该在 C# 中定义(显式或隐式)转换运算符?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭2年前。ImprovethisquestionC#的一个鲜为人知的特性是可以创建隐式或显式user-definedtypeconversions.我已经编写C#代码6年了,但我从未使用过它。所以,我担心我可能会错失良机。用户定义的转换的合法、良好用途是什么?您是否有比仅定义自定义方法更好的示例?--事实证明,Microsoft有一些designguidelines关于转化,其中最相关的是:Donotprovideaconversion

C# 日期时间 : Conversion for different time zones

我有一堆日期时间可以跟踪我的应用程序。它们都是UTC时间。对于我的应用程序的一部分,我想发送一封包含其中一个时间的电子邮件,但已编辑为在该特定时区。我将处理的主要区域只有两个,东海岸和德克萨斯州(达拉斯和休斯顿)我还可以在发送此电子邮件时创建一个新的日期时间以获取东部时区(DateTimetimestamp=DateTime.Now;)我的问题是:如果用户在德克萨斯地区,我如何将我的时间从东部时间转换为那个时间(少1小时)?我试过这样的://ConverttimestamptolocaltimeTimeSpants=TimeZone.CurrentTimeZone.GetUtcOffs

c# - 机器人框架 : How to exit Conversation?

所以现在我正在使用Microsoft.Bot.Builder.Dialogs.Conversation.SendAsync和Microsoft.Bot.Builder.Dialogs.Conversation.ResumeAsync来实现一个暂停和恢复对话的方法,但似乎不可能“退出”或返回到以前的状态。它卡在对话对话框中。我是否只执行“取消”命令?如果是这样,我需要清除哪些数据才能恢复到原始状态?publicstaticreadonlyIDialogdialog=Chain.PostToChain().Switch(newCase>((msg)=>{varregex=newRegex(

c# - 如何从反射执行显式操作转换?

我想使用反射并使用反射进行隐式或显式覆盖。鉴于我已经这样定义了FoopublicclassFoo{publicstaticexplicitoperatordecimal(Foofoo){returnfoo.Value;}publicstaticexplicitoperatorFoo(decimalnumber){returnnewFoo(number);}publicFoo(){}publicFoo(decimalnumber){Value=number;}publicdecimalValue{get;set;}publicoverridestringToString(){return

c# - 为什么/何时将运算符指定为显式很重要?

我从anotherquestion借用了下面的代码(稍作修改),在我的代码中使用:internalclassPositiveDouble{privatedouble_value;publicPositiveDouble(doubleval){if(val此代码的原作者正确遵守了MSDN的implicit中给出的警告。&explicit文档,但这是我的问题:explicit在潜在的异常代码中是否总是必要的?因此,我的代码中有一些派生自PositiveDouble的类型(例如“Volume”),我希望能够像下面第一行那样方便地设置实例:Volumev=10;//onlyallowedbyi

C# : Implicit conversion between '<null>' and 'bool'

当我尝试转换object时收到奇怪的错误消息至bool,这是我的代码:publicpartialclassModifierAuteur:DevExpress.XtraEditors.XtraForm{publicModifierAuteur(objectgetKeyDecesCheckBox){decesCheckBox.Checked=getKeyDecesCheckBox==null?null:(bool)getKeyDecesCheckBox;}}这是错误信息:Typeofconditionalexpressioncannotbedeterminedbecausethereisn

c# - "Cannot insert explicit value for identity column in table when IDENTITY_INSERT is set to OFF"带复合键

我们最近向我们的数据库添加了一个新的“级别”——在整个数据库中的表中现有ID身份字段的上方/之前添加了一个键“Company_ID”。例如,如果一个表有ID然后是字段,它现在有Company_ID,然后是ID,然后是字段。这个想法是,这允许ID为提供给功能的每个不同的Company_ID值自动递增(Company_ID1可以有ID1、2、3等;Company_ID2可以有ID1、2、3等)。自增字段保持为ID。一个示例表是:[dbo].[Project]([Company_ID][int]NOTNULL,[ID][int]IDENTITY(1,1)NOTNULL,[DescShort]

c# - 隐式类型数组 : why we can't set array size explicitly?

C#语言规范(7.6.10.4)说,数组创建表达式有树种:newnon-array-type[expression-list]rank-specifiersoptarray-initializeroptnewarray-typearray-initializernewrank-specifierarray-initializer第三个用于隐式类型数组:varfoo=new[]{1,2,3};问题:在隐式类型数组的情况下,是否有任何重要的理由禁止显式设置数组大小?与这种语法相比,它看起来像是不对称行为:varfoo=newint[3]{1,2,3};更新。稍微澄清一下。我可以看到,显式设

c# - "Cannot be determined because there is no implicit conversion"如果返回则为三进制

如果返回,我有以下ASP.NETWebApi2操作和三元:[HttpDelete]publicIHttpActionResultDelete(){booldeleted;//...returndeleted?this.Ok():this.NotFound();}我收到一个Typeofconditionalexpressioncannotbedeterminedbecausethereisnoimplicitconversionbetween'System.Web.Http.Results.OkResult'and'System.Web.Http.Results.NotFoundResu

javascript陷阱: empty list to boolean conversion

为什么都是[]==false和![]==false是真的吗? 最佳答案 ===运算符是您的friend。切勿使用==运算符;它会咬你,如你所见。 关于javascript陷阱:emptylisttobooleanconversion,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1534014/