Hallo zusammen,
ich versuche gerade folgenden Code von VB nach C# zu übersetzen und bekomme 2 Warnungen die die letzten beiden return Anweisungen betreffen.
Spoiler anzeigen
Das ist was ich übersetzt habe.
Spoiler anzeigen
Nun kann ich mit der Fehlermeldung nichts anfangen. Habe ich beim Übersetzen Fehler gemacht und den VB Code womöglich falsch verstanden?
ich versuche gerade folgenden Code von VB nach C# zu übersetzen und bekomme 2 Warnungen die die letzten beiden return Anweisungen betreffen.
VB.NET-Quellcode
- Public Function FindOwnerWindow(viewModel As Object) As Window
- If viewModel IsNot Nothing Then
- If viewModel.GetType Is GetType(DialogWindow) Then Return CType(viewModel, Window)
- If Application.Current.Windows.Cast(Of Window)().SingleOrDefault(Function(x) x.DataContext IsNot Nothing AndAlso x.DataContext.GetType Is viewModel.GetType) Is Nothing Then
- For Each window As Window In (From win In Application.Current.Windows()).ToList
- If window.DataContext IsNot Nothing AndAlso window.DataContext.GetType Is viewModel.GetType Then
- Return window
- End If
- Next
- Else
- Return Application.Current.Windows.Cast(Of Window)().SingleOrDefault(Function(x) x.DataContext IsNot Nothing AndAlso x.DataContext.GetType Is viewModel.GetType)
- End If
- End If
- Return Application.Current.Windows.Cast(Of Window)().SingleOrDefault(Function(x) x.IsActive)
- End Function
Das ist was ich übersetzt habe.
C#-Quellcode
- public Window FindOwner(object viewModel)
- {
- if (viewModel != null)
- {
- if (viewModel.GetType() == typeof(DialogWindow)) return (Window)viewModel;
- if (Application.Current.Windows.Cast<Window>().SingleOrDefault(x => x.DataContext != null && x.DataContext.GetType() == viewModel.GetType()) == null)
- {
- foreach (Window window in (from Window win in Application.Current.Windows select win).ToList())
- {
- if (window.DataContext != null && window.DataContext.GetType() == viewModel.GetType())
- return window;
- }
- }
- else
- {
- return Application.Current.Windows.Cast<Window>().SingleOrDefault(x => x.DataContext != null && x.DataContext.GetType() == viewModel.GetType());
- }
- }
- return Application.Current.Windows.Cast<Window>().SingleOrDefault(x => x.IsActive);
- }
Nun kann ich mit der Fehlermeldung nichts anfangen. Habe ich beim Übersetzen Fehler gemacht und den VB Code womöglich falsch verstanden?
Rechtschreibfehler betonen den künstlerischen Charakter des Autors.