c# – 为什么不能通过实例名称访问静态成员?
class Test
{
public static int Hello = 5;
}
这显然有效:
int j = Test.Hello;
但为什么这不起作用?
Test test = new test(); int j = test.Hello;
该实例不能有一个同名的成员,所以我不知道这对编译器来说是多么模糊或不可解析.
任何人都知道为什么会这样?
编辑:
除了语言设计者为了可读性/清晰度/美学/等而选择它之外,还有其他任何技术原因吗?
解决方法
假设这是可能的.当你通过一个null的实例变量访问静态成员时,你会想要的结果是什么?您想要一个空引用异常(但为什么,因为不需要实例来获取静态成员)?或者你希望它能工作(在这种情况下你会遇到奇怪的情况,这个实例变量的一些调用工作,但有些没有)?无论哪种方式都有问题.
c# – 为什么不能通过实例名称访问静态成员?的更多相关文章
-
ios – 在斯威夫特打字
我正在编写一个可以从JSON中解析类型的ID的库.但是,我发现类似的规则有点令人困惑.例:为什么第一个typecast成功,而第二个失败?Nsstring有没有什么神奇的东西,它不会交叉到swift-class?
-
ios – 是否可以继承MKPolyline
我正在为iPhone构建一个基于MapKit的应用程序.我有一些MKpolylines添加到地图.然而,我不想拥有一个MKpolyline,而是希望有一个符合MKOverlay协议的Model类可以添加到map中,以便在mapView中创建相应的视图时可以访问模型属性:viewForOverlay.问题是我找不到从MKpolyline继承的方法,因为它没有任何可以从子类“init”调用的init方法.您只能使用方便的方法创建它们.如何将模型属性和MKpolyline行为结合在一起?
-
寒城攻略:Listo 教你 25 天学会 Swift 语言 - 12 Properties
属性监视器可以添加到自己写的属性上,也可以添加到从父类继承的属性上//2.StoredProperties//简单来说,一个存储属性就是存储在特定类或结构体的实例里的一个常量或变量,存储属性可以是变量存储属性,也可以是常量存储属性//_______________________________________________________________________________________________//代码演示存储属性structFixedLengthRange{//FixedLen
-
Swift编程高级教程 变量与常量
提示实际应用中很少需要指定变量数据类型,Swift会根据所设置的值的类型进行推导。Swift使用字符串插值来输出变量和常量。Swift中并没有所谓的实例变量,而是将它们统一为属性了,这样使得属性的声明更加简化。Size封装了宽度和高度。而let只能用于常量的声明,表示它们的值不能发生改变。但是在Swift中可以直接将它们定义为类型的一部分。
-
Swift 2
letlabel="Thewidthis"letwidth=94letwidthLabel=label+String练习:删除最后一行中的String,错误提示是什么?你可以一起使用if和let来处理值缺失的情况。switch支持任意类型的数据以及各种比较操作——不仅仅是整数以及测试相等。运行switch中匹配到的子句之后,程序会退出switch语句,并不会继续向下运行,所以不需要在每个子句结尾写break。
-
swift之ARC
Swift使用自动引用计数来跟踪并管理应用使用的内存。大部分情况下,这意味着在Swift语言中,内存管理"仍然工作",不需要自己去考虑内存管理的事情。为了保证不会发生上述的情况,ARC跟踪与类的实例相关的属性、常量以及变量的数量。解决实例间的强引用环Swift提供两种方法来解决强引用环:弱引用和无主引用。在Swift语言中,推荐用可选类型来作为可能没有值的引用的类型。
-
[翻译]Swift导览
Swift导览第一次用一门新语言编程,通常要在屏幕上打印“Hello,World”。本章会通过展示如何完成一系列变成任务,来给你的Swift编程之旅开个好头。在Mac电脑上,下载playground,双击连接https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.playground.zip用Xcode将其打开。Swift中的值不会隐式转换类型。
-
Swift语法学习之 类和结构体
然而在Swift中,类和结构体的关系要比在其他语言中更加的密切,本章中所讨论的大部分功能都可以用在类和结构体上。类和结构体对比Swift中类和结构体有很多共同点。定义类和结构体有着类似的定义方式。这个结构体包含了两个名为width和height的存储属性。构造过程章节会对类和结构体的初始化进行更详细的讨论。在Swift中,所有的结构体和枚举都是值类型。
-
转 Grand Central Dispatch 基础教程:Part 1/2 -swift
第一节将解释什么是GCD并了解几个GCD的基础函数。GettingStartedGCD是libdispatch的代名词,libdispatch代表着运行iOS与OSX的多核设备上执行并行代码的官方代码库。再有一点要记住的就是在任何GCD文档中涉及到Objective-C的块代码都是可以用Swift的闭包来替换的。举个具有线性安全性的代码示例leta=["thread-safe"]。因为,这一切都是由GCD控制的。任务的开始执行的时间完全由GCD决定。它也是唯一一个用作向UIView对象发送信息或推送监听。
-
[翻译]Swift编程语言——类和结构体
Swift中,你在单独文件中定义一个类或者结构体,关联到这个类或者结构体的外部接口会自动生效,供其它代码使用。然而,同其他语言相比,Swift的类和结构体在功能方面更加密切,本章的大部分会介绍可以用在类或者结构体实例上的功能。实际上Swift中所有的基本类型——整型、浮点型、布尔类型、字符串,数组和字典都是值类型,并且在后台以结构体的形式实现。Swift中所有的结构体和枚举都是值类型的。
随机推荐
-
c# – (wpf)Application.Current.Resources vs FindResource
所以,我正在使用C#中的WPF创建一个GUI.它看起来像这样:它现在还没有完成.这两行是我尝试制作一种数据表,它们在XAML中是硬编码的.现在,我正在C#中实现添加新的水果按钮功能.我在XAML中有以下样式来控制行的背景图像应该是什么样子:因此,在代码中,我为每列col0,col1和col2创建一个图像,如果我使用以下代码,它添加了一个如下所示的新行:如你所见,它不太正确……为什么一个似乎忽略了一些属性而另一个没有?
-
c# – 绑定DataGridTemplateColumn
似乎我已经打了个墙,试图在DataGrid上使用DataTemplates.我想要做的是使用一个模板来显示每个单元格的两行文本.但是似乎无法以任何方式绑定列.以下代码希望显示我想做的事情.注意每个列的绑定:模板列没有这样的东西,因此,这个xaml不可能工作.我注定要将整个DataTemplate复制到每个列,只是对每个副本都有不同的约束?解决方法我不完全确定你想要做什么,但如果您需要获取整行的DataContext,可以使用RelativeSource绑定来移动视觉树.像这样:
-
c# – 学习设计模式的资源
最近我来到了这个设计模式的概念,并对此感到非常热情.你能建议一些帮助我深入设计模式的资源吗?
-
c# – 是否有支持嵌入HTML页面的跨操作系统GUI框架?
我想开发一个桌面应用程序来使用跨系统,是否有一个GUI框架,允许我为所有3个平台编写一次代码,并具有完全可脚本化的嵌入式Web组件?我需要它有一个API来在应用程序和网页之间进行交流.我知道C#,JavaScript和一些python.解决方法Qt有这样的事情QWebView.
-
c# – 通过字符串在对象图中查找属性
我试图使用任意字符串访问嵌套类结构的各个部分.给出以下(设计的)类:我想要从Person对象的一个实例的“PersonsAddress.HousePhone.Number”获取对象.目前我正在使用反思来做一些简单的递归查找,但是我希望有一些忍者有更好的想法.作为参考,这里是我开发的(crappy)方法:解决方法您可以简单地使用标准的.NETDataBinder.EvalMethod,像这样:
-
c# – 文件下载后更新页面
FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=en&pf=true它呈现该页面,然后使用以下元刷新标签来实际向用户提供要下载的文件:你可能需要在你的应用程序中做类似的事情.但是,如果您真的有兴趣在文件完全下载后执行某些操作,那么您的运气不佳,因为没有任何事件可以与浏览器进行通信.执行此操作的唯一方法是上传附件时使用的AJAXupload.
-
c# – 如何在每个机器应用程序中实现单个实例?
我必须限制我的.net4WPF应用程序,以便每台机器只能运行一次.请注意,我说每个机器,而不是每个会话.我使用一个简单的互斥体实现单实例应用程序,直到现在,但不幸的是,这样一个互斥是每个会话.有没有办法创建机器互连,还是有其他解决方案来实现每个机器应用程序的单个实例?
-
c# – WCF和多个主机头
我的雇主网站有多个主机名,都是同一个服务器,我们只是显示不同的皮肤来进行品牌宣传.不幸的是,在这种情况下,WCF似乎不能很好地工作.我试过overridingthedefaulthostwithacustomhostfactory.这不是一个可以接受的解决方案,因为它需要从所有主机工作,而不仅仅是1.我也看过thisblogpost,但是我无法让它工作,或者不是为了解决我的问题.我得到的错误是“这
-
c# – ASP.NET MVC模型绑定与表单元素名称中的虚线
我一直在搜索互联网,试图找到一种方式来容纳我的表单元素的破折号到ASP.NET的控制器在MVC2,3或甚至4中的默认模型绑定行为.作为一名前端开发人员,我更喜欢在我的CSS中使用camelCase或下划线进行破折号.在我的标记中,我想要做的是这样的:在控制器中,我会传入一个C#对象,看起来像这样:有没有办法通过一些正则表达式或其他行为来扩展Controller类来适应这种情况?我讨厌这样的事实,我必须这样做:甚至这个:思考?
-
c# – 用户界面设计工具
我正在寻找一个用户界面设计工具来显示文档中可能的GUI.我不能生成代码.我知道MicrosoftVisio提供了一个功能.但有什么办法吗?您使用哪种软件可视化GUI?