c# – 没有’使用someNamespace’的var关键字
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 没有’使用someNamespace’的var关键字,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1127字,纯文字阅读大概需要2分钟。
内容图文
![c# – 没有’使用someNamespace’的var关键字](/upload/InfoBanner/zyjiaocheng/760/4e5fcbd540cc437fa1d55c1ac103f32e.jpg)
即使您没有在顶部包含必要的using声明,Visual Studio / intellisense如何知道如何处理声明为var的变量?
例如,我在不同的命名空间中定义了MyDomainObject类
如果我没有声明使用TheOtherNameSpace;在文件中,以下代码将无法编译:
private void Foo()
{
MyDomainObject myObj = new MyDomainObject();
// Doesn't know what this class is
}
但是如果我使用var
var myObj = new MyDomainObject();
这将编译,intellisense确切地知道我能用它做什么.
那么如何在没有使用的情况下知道它的类型是什么?
(另外,如果它知道没有使用,为什么我们需要使用?!)
解决方法:
使用构造函数的示例将不起作用,但稍微更复杂的情况将会起作用.例如,假设您有三种类型:
>命名空间N1中的类Foo
>命名空间N2中的类Bar
>命名空间N3中的类Baz
现在假设Bar有一个返回Foo实例的方法:
public static Foo GetFoo() { ... }
这里,Bar.cs需要一个N1的using指令,除非它完整地指定了这个名字.
现在假设我们在Baz中有这个代码:
using N2;
...
var foo = Bar.GetFoo();
那会编译,但是
using N2;
...
Foo foo = Bar.GetFoo();
惯于.原因是只使用指令,以便编译器知道名称“Foo”的含义 – 它的完全限定名称是什么.在第一个片段中,Bar.GetFoo()被有效地声明为返回N1.Foo,因此编译器没问题.在第二个片段中,编译器首先看到“Foo”并且对N1一无所知,因此不知道如何查找它.
内容总结
以上是互联网集市为您收集整理的c# – 没有’使用someNamespace’的var关键字全部内容,希望文章能够帮你解决c# – 没有’使用someNamespace’的var关键字所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。