草庐IT

static和final关键字

全部标签

c# - Lazy<T> 延迟加载错误 : A field initializer cannot reference the non-static field, 方法或属性

我第一次尝试使用延迟加载来初始化我的类中的进度对象。但是,我收到以下错误:Afieldinitializercannotreferencethenon-staticfield,method,orproperty.privateLazym_progress=newLazy(()=>{longtotalBytes=m_transferManager.TotalSize();returnnewProgress(totalBytes);});在.NET2.0中,我可以执行以下操作,但我更愿意使用更新的方法:privateProgressm_progress;privateProgressPro

c# - 反序列化包含与关键字冲突的属性的 JSON 响应

有一个我无法控制的API,但我需要使用C#使用其输出,最好使用JSON.Net。这是一个示例响应:[{"media_id":36867,"explicit":0}]我本来打算上这样的课:classMedia{publicintmedia_id;publicintexplicit;}反序列化:varl=JsonConvert.DeserializeObject>(s);不幸的是,“explicit”是C#关键字,因此无法编译。我的下一个猜测是修改类:classMedia{publicintmedia_id;publicintexplicit_;}...并以某种方式将响应属性映射到C#属性

c# - 在 C# 中,finally block 之前有一个 catch-all catch block 有什么用?

考虑以下C#代码结构(S0-S3是任意代码块的占位符):try{S0;}catch(Exceptionex){S1;}finally{S2;}S3;如果S1在catch处理程序中抛出异常,finally中的S2仍将执行(但S3不会)。问题假设S1不能抛出,将S2放在finallyblock内而不是将它放在try/catch/finally之外,就在S3之前是否有任何意义?例子try{//Dosomethingthatmightthrow}catch(Exceptionex){//Savetheexceptiontore-throwlater//NB:Thisstatementcanno

c# - C# "as"关键字是否有比简单转换更多的内容?

我正在处理JoshSmith'sCommandSinkcode显然不了解C#中的“as”关键字。我不明白他为什么要写这行:IsValid=_fe!=null||_fce!=null;因为他只需要写:IsValid=depObj!=null;因为永远不会出现_fe为null而_fce不为null的情况,反之亦然,对吧?还是我遗漏了有关“as”如何转换变量的信息?classCommonElement{readonlyFrameworkElement_fe;readonlyFrameworkContentElement_fce;publicreadonlyboolIsValid;public

c# - var 关键字并不总是有效?

C#,VS2010。有人,请解释为什么我不能在下面的代码中使用var!varprops=TypeDescriptor.GetProperties(adapter);//errorCS1061:'object'doesnotcontainadefinitionfor'DisplayName'foreach(varpropinprops){stringname=prop.DisplayName;}//Noerrorforeach(PropertyDescriptorpropinprops){stringname=prop.DisplayName;}TypeDescriptor.GetPro

c# - public static vs static public - 有区别吗?

sealedclassPI{publicstaticfloatnumber;staticPI(){number=3.141592653F;}staticpublicfloatval(){returnnumber;}}publicstatic和staticpublic有什么区别?它们可以按任何顺序使用吗?我将如何使用staticpublicfloatval()?类一初始化就执行吗? 最佳答案 没有区别。您可以按任一顺序随意指定它们。但是,我发现大多数开发人员倾向于使用publicstatic而不是staticpublic。

c# - 基于一组关键字进行搜索

我需要根据一组关键字进行搜索,返回与这些关键字相关的所有广告。然后结果是一个类别列表,其中包含每个类别的广告计数。搜索是在关键字搜索表中进行的:publicclassKeywordSearch{publicintId{get;set;}publicstringName{get;set;}publicKeywordKeyword{get;set;}}关键词表在哪里:publicclassKeyword{publicintId{get;set;}publicstringName{get;set;}}使用下表将广告与关键字相关联:publicclassKeywordAdCategory{[K

c# - ReSharper 可以使用关键字进行声明但使用类型名称进行成员访问吗?

ReSharper具有在使用关键字别名类型名称时查找不一致的功能。例如,它会看到这两个声明并敦促您将一个更改为与另一个相同(取决于您的偏好设置):stringmyString1="String1";StringmyString2="String2";这很方便,因为在声明变量时我总是喜欢使用CLR类型的关键字别名,因此在上面的示例中,我想更正第二行。但是,这也有问题,因为在使用CLR类型的静态成员时,我总是更喜欢使用类型名称而不是关键字。考虑以下示例:stringmyString1="String1";stringmyString2=String.Format("{0}isString1

C# 4.0 : casting dynamic to static

这是一个分支问题,与我问的另一个问题有关here.我把它分开是因为它真的是一个子问题:我在转换dynamic类型的对象时遇到困难到另一个(已知的)静态类型。我有一个用于执行此操作的IronPython脚本:importclrclr.AddReference("System")fromSystemimport*defGetBclUri():returnUri("http://google.com")请注意,它只是更新BCLSystem.Uri类型并返回它.所以我知道静态类型返回的对象。现在在C#领域,我正在更新脚本托管内容并调用这个getter来返回Uri对象:dynamicuri=sc

c# - 使用 x :Static 指定时忽略 DataTemplate 键

我遇到了DataTemplate键的奇怪行为:当通过x:Type指定DataType,并且通过x:Static引用指定x:Key时,忽略x:Key。我编写了示例应用程序来说明它。XAML资源:C#:publicclassTestDto{}publicstaticclassDataKeys{publicstaticstringTestDtoKey="TestKey";publicstaticstringTestDtoKey2="TestKey2";publicstaticstringTestDtoKey4="TestKey4";}启动应用程序,在调试器中查看this.Resources.