[英]C# Why does passing of an class instance to a method which accepts object as parameter and boxing it back work
[英]Writing Method in C# Which Creates Instance Of Class Using Parameter
一個基本問題:我正在編寫一個具有菜單的C#應用程序,每個菜單項都將打開一個新窗口。 這些窗口都是Window類的實例。
而不是編寫:(EditSettings是目標窗口的所需名稱)
Window EditSettings = new Window();
EditSettings.Show();
對於每個實例,我是否可以編寫如下所示的方法來創建實例?
private void OpenSelectedWindow(Window n)
{
n = new Window();
n.Show();
}
我無法調用該方法-我嘗試過:
OpenSelectedWindow(EditSettings);
哪個不起作用(“名稱EditSettings在當前上下文中不存在”),或
OpenSelectedWindow(Window EditSettings);
這也不起作用
我對C#感到非常生疏,並很想問這個問題,但是我似乎在互聯網上找不到這個例子。 您可以使用方法創建類的實例嗎? 我想念什么? 謝謝。
編輯
這些代碼都發生在主命名空間中:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
// Attempting to write a method that instances the class
private void OpenSelectedWindow(Window n)
{
n = new Window();
n.Show();
}
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
//Calling the method
OpenSelectedWindow(EditSettings);
}
}
我有兩個.xaml文件-EditSettings.xaml(空)和MainWindow.xaml。
您可以為此使用泛型:
private T OpenSelectedWindow<T>() where T : Window, new()
{
T n = new T();
n.Show();
return n;
}
使用如下方法:
EditSettings editSettingsWindow = OpenSelectedWindow<EditSettings>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.