2012-03-07 4 views
3

I(WPF、.NET 4)、C#1からVB.NETにいくつかのコードを変換Operator =は、UIElementおよびUIElementの型に対して定義されていません。

C#

// Update the Z-Index of every UIElement in the Canvas. 
foreach(UIElement childElement in base.Children) 
{ 
    if(childElement == element) 
     Canvas.SetZIndex(element, elementNewZIndex); 

VB.NET(自動翻訳)

' Update the Z-Index of every UIElement in the Canvas. ' 
For Each childElement As UIElement In MyBase.Children 
    If childElement = element Then  ' <<<<<<<<<<<<< Compile ERROR ' 
    Canvas.SetZIndex(element, elementNewZIndex) 

コンパイルエラー:

Error 4 Operator '=' is not defined for types 'System.Windows.UIElement' and 'System.Windows.UIElement'.

どのようにC#演算子がVB.NET - NOT(?)で定義されているのですか?

答えて

1

代わり

+0

は、C#で演算子が定義されている方法childElement.Equals(element)が、VBで使用してみてください - ではないが..? – serhio

+2

これを読んでください(http://www.codeproject.com/Articles/18714/Comparing-Values-for-Equality-in-NET-Identity-and)。記事の終わりはvb.net – Dave

+2

で平等について議論しています私はこれが実際にOPの質問に答えないと思います。私はOPが** **演算子がVB.Netで動作しない理由を知りたいと思いますが、コードを修正する方法ではありません。また、記事には "VB.NETには==演算子も、それと同等の演算子もありません"と書かれています。何の説明もなしに、少なくとも不完全であるため、=演算子がオーバーロードされる可能性があります。 – ken2k

関連する問題