c# - 在 C# 3.0 中我们使用 "var"在 C# 2.0 中它的替代品是什么?

标签 c# c#-3.0 mef var

我正在使用托管可扩展性框架 (MEF) 学习 .Net 中的可插拔架构。 我在网上看到了示例代码,但是当我尝试实现它时,我一度卡住了。

代码使用:

 var catalog = new AttributedAssemblyPartCatalog(Assembly.GetExecutingAssembly());
 var container = new CompositionContainer(catalog.CreateResolver());

var 在 C# 3.0 上可用,而我在 C# 2.0 中编码。

以上两种说法的替代方案是什么?如何使用 VS 2005 让它们在 c# 2.0 中工作?


我试过这个 bt 它现在说

错误 1 ​​找不到类型或命名空间名称“AttributedAssemblyPartCatalog”(是否缺少 using 指令或程序集引用?) C:\Documents and Settings\test\Desktop\MEFDemo\MEFDemo\程序.cs 31 13 MEFDemo

我在哪里添加了对 SystemComponentModel.Composition 的引用

最佳答案

基本上,var 强制编译器根据它的“初始化器”来确定(推断)变量的编译时类型——有效地,一个表达式对 = 标志。这里的类型很明显:

AttributedAssemblyPartCatalog catalog = 
    new AttributedAssemblyPartCatalog(Assembly.GetExecutingAssembly());
CompositionContainer container = 
    new CompositionContainer(catalog.CreateResolver());

并确保添加 using System.ComponentModel.Composition; 语句。另外,请注意 AttributedAssemblyPartCatalog 已重命名为 AssemblyCatalog

关于c# - 在 C# 3.0 中我们使用 "var"在 C# 2.0 中它的替代品是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/856780/

相关文章:

c# - 输入类型 ="hidden"asp-for= 不适用于 List

c# - 在 C# 中重命名 Excel 工作表名称

c# - C# 对象初始化器的嵌套使用

c# - 确定事件处理程序的优先级

c# - MEF 依赖关系和版本控制

asp.net - MEF零件配置,存放在哪里?

c# - 获取 NEventStore head 修订版

c# - 弹出窗口 web 浏览器控件

c# - 在像 C# 这样的 JavaScript 中创建事件

c# - MEF 的对象破坏问题