在 VS2010 中创建一个新的 WPF 应用程序。在 MainWindow.cs 中声明一个未使用的局部变量以生成编译器警告,如下所示:
namespace WpfApplication4
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
int i = 0;
}
}
}
构建应用程序。输出将如下所示:
------ Rebuild All started: Project: WpfApplication4, Configuration: Debug x86 ------
D:\_UserData\Development\Workspaces\DotnetTesting\WpfApplication4\WpfApplication4\MainWindow.xaml.cs(25,8): warning CS0219: The variable 'i' is assigned but its value is never used
Compile complete -- 0 errors, 1 warnings
WpfApplication4 -> D:\_UserData\Development\Workspaces\DotnetTesting\WpfApplication4\WpfApplication4\bin\Debug\WpfApplication4.exe
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
请注意,只有一次提到未使用的变量“i”。现在在 MainWindow.xaml 中添加对本地命名空间的引用,如下所示:
<Window x:Class="WpfApplication4.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication4"
Title="MainWindow" Height="350" Width="525">
<Grid>
</Grid>
</Window>
现在重建,输出如下所示:
------ Rebuild All started: Project: WpfApplication4, Configuration: Debug x86 ------
D:\_UserData\Development\Workspaces\DotnetTesting\WpfApplication4\WpfApplication4\MainWindow.xaml.cs(25,14): warning CS0219: The variable 'i' is assigned but its value is never used
Compile complete -- 0 errors, 1 warnings
MainWindow.xaml.cs(25,14): warning CS0219: The variable 'i' is assigned but its value is never used
WpfApplication4 -> D:\_UserData\Development\Workspaces\DotnetTesting\WpfApplication4\WpfApplication4\bin\Debug\WpfApplication4.exe
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
请注意,现在有两次提到未使用的变量“i”。
为什么会这样,我该如何阻止它发生?
编辑
我已经想出了如何让它停止。只需添加本地程序集的名称以及命名空间,如下所示:
<Window x:Class="WpfApplication4.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication4;assembly=WpfApplication4"
Title="MainWindow" Height="350" Width="525">
<Grid>
</Grid>
</Window>
不幸的是,这不是一个解决方案,因为在 WPF exe 中引用本地程序集中的命名空间时,您不允许在命名空间声明中提供程序集的名称。这将构建,但是如果您尝试在本地程序集中引用一个类型,如果指定了程序集名称,它将失败。使用 xmlns:local="clr-namespace:WpfApplication4;assembly=" 语法会返回双重警告。
PS 为什么投反对票?不加评论的否决投票是蹩脚的,如果你不告诉我你不喜欢这个问题,我应该如何改进这个问题?