我正在尝试为 String 类创建额外的功能(IsNullOrWhitespace 与 .NET4 中一样)
但我在引用时遇到问题:
Error 1 'String' is an ambiguous reference between 'string' and 'geolis_export.Classes.String'
我不想创建扩展方法。因为如果 string x = null;
用法:
private void tbCabineNum_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
e.Handled = !e.Text.All(Char.IsNumber) || String.IsNullOrWhiteSpace(e.Text);
}
部分字符串:
public partial class String
{
public static bool IsNullOrWhiteSpace(string value)
{
if (value == null) return true;
return string.IsNullOrEmpty(value.Trim());
}
}
难道不能为 String 类创建额外的东西吗?
我试图将部分放在 System 命名空间中,但这会导致其他错误。
将 String 重命名为 String2 也解决了这个问题。但这不是我想要的,因为那样就没有对原始 String 类的引用。
最佳答案
这样是不行的,因为.NET framework中的string类是不偏的。
相反,使用像这样的真正的扩展方法:
public static class StringExtensions
{
public static bool IsNullOrWhiteSpace(this string value)
{
if (value == null) return true;
return string.IsNullOrEmpty(value.Trim());
}
}
用法是这样的:
string s = "test";
if(s.IsNullOrWhiteSpace())
// s is null or whitespace
与所有扩展方法一样,如果字符串为 null,则调用不会导致空引用异常:
string s = null;
if(s.IsNullOrWhiteSpace()) // no exception here
// s is null or whitespace
出现这种行为的原因是编译器会将这段代码翻译成等价于以下 IL 代码的 IL 代码:
string s = null;
if(StringExtensions.IsNullOrWhiteSpace(s))
// s is null or whitespace
关于C# 3.5 分部类 String IsNullOrWhiteSpace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6535492/
来自Java,我正在尝试在Ruby中实现LinkedList。我在Java中实现它的通常方法是有一个名为LinkedList的类和一个名为Node的私有(private)内部类,其中LinkedList的每个对象都作为Node对象。classLinkedListprivateclassNodeattr_accessor:val,:nextendend我不想将Node类暴露给外部世界。然而,通过Ruby中的这个设置,我可以使用这个访问LinkedList类之外的私有(private)Node类对象-node=LinkedList::Node.new我知道,在Ruby1.9中,我们可以使用
defclassAdefaraise"hi"#can'tbereachedendclassBdefba()#doesn'tfindmethoda.endendend我想从b调用a并引发异常。我该怎么办? 最佳答案 Ruby没有嵌套类。继承行为的唯一方法是通过继承。如果你想让你的代码工作,你需要使用支持嵌套类的语言。虽然这是一个令人难以置信的简洁而强大的功能,但不幸的是我只知道两种具有嵌套类的语言:BETA,引入嵌套类的语言(及其继任者gbeta)Newspeak我不知道其他的。Java有一个称为嵌套类的构造,但它们有一些不幸的设计限
请记住,您是一位NLP领域的专家和优秀的算法工程师。使用带有tensorflow2.0subclassapi的python从头开始实现transformer模型。全部内容如下:构建transformer模型架构和依赖层;生成并预处理一些假样本数据,用于训练上面构建的模型;上面生成的样本数据的训练模型示例教程;上面生成的样本数据的预测模型示例教程;上面生成的示例数据的部署模型示例教程;最后,您所有的答案都以markdown格式呈现。You:Rememberyou’reanexpertandexcellentalgorithmengineerinNLParea.Implementtransform
目录一、在一个Java文件中定义多个类(外部类)1.问题描述及解答2.总结二、在一个Java文件定义多个类(内部类)1.成员内部类和匿名内部类1.1成员内部类1.2匿名内部类2.深入理解内部类3.内部类的使用场景和好处一、在一个Java文件中定义多个类(外部类)1.问题描述及解答1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?答案:可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。一个文件中可以只有非public类,如果只有一个非public类,此类可以跟文件名不同。2、为什么一个java源文件中只能有一个public类?在jav
我最初是在寻找有关如何在FF3.5中开始使用客户端数据库的基础教程。我的理解是这个功能在FF、Safari和IE8中是支持的。但是,我遇到了一个非常基本的问题,即在FF3.5中似乎找不到创建此类数据库的语法。例如,创建一个新的数据库:vardatabase=window.openDatabase("DatabaseName","DatabaseVersion");但是,在FF3.5中window.openDatabase是找不到的。它可以在Safari4中使用该语法找到。我没有测试过IE8,所以我不知道。有人对此有更多信息吗? 最佳答案
项目简介Aptos是由原Libra开发者创建的一个Layer1公链项目,Aptos的代码是建立在Diem的开源代码库基础上,使用Move语言作为开发语言,致力于改善区块链的安全性和可扩展性,打造可以面向数十亿人的基础设施网络(原本为Libra/Diem的目标)。2019年Facebook联合圈外机构共同启动了区块链项目Libra,Libra主要以构建全球统一的稳定币支付系统,由于监管的原因,后改名为Diem,之后Diem也因监管原因被打包出售,项目胎死腹中,原一部分开发者分别建立了三个项目(后续可能会出现更多),分别为Aptos、Sui和Linera,而目前关注度最高的为Aptos。Libra
我需要在WordPress3.5上传程序中上传新图像后立即运行一些代码。这是wp-includes/js/media-views.js的代码(第529-540行)uploading:function(attachment){varcontent=this.frame.content;//Iftheuploaderwasselected,navigatetothebrowser.if('upload'===content.mode())this.frame.content.mode('browse');//Ifwe'reinaworkflowthatsupportsmultipleatt
我正在使用ArcGIS3.5JavascriptAPI和RequireJS我用这段代码实现了它:varmap;require(["esri/map","dojo/domReady!"],function(Map){map=newMap("mapDiv",{center:[-96.571541,39.155622],zoom:3,basemap:"streets"});});});使用这个RequireJS配置:requirejs.config({baseUrl:"js/",paths:{underscore:'libs/underscore',tpl:'tpl',backbone:'l
我无法理解它的用途。RegisterClientScriptBlock/RegisterStartupScript。当我们可以直接在.js文件中写JavaScript代码然后在按钮上调用例如:2functionReqField1Validator(){if(document.forms[0].txtField1.value==''){alert('TextBoxcannotbeempty')returnfalse}returntrue}btnPostback.Attributes.Add("onclick","returnReqField1Validator()");RegisterC
在Javascript中,我想定义一个带有内部(或嵌套)类的类。在内部类中,我希望能够访问父实例。我怎样才能有效地做到这一点?一些代码会说明我的意思。假设我定义了一个类MyType1,它公开了几个属性和一个函数SayHello:(function(){MyType1=function(name){this.TypeName="MyType1";this.Name=name;};MyType1.prototype.SayHello=function(){say(this.Name+"sayshello...");};})();好的,现在,从这里开始,我想向MyType1添加一个“内部类”