vb.net 的实现和C# 的实现有很多方面都不一样,今天就拿 Overload 来做个对比。

大家可能都对 C# 比较熟悉,我列出一下一段代码:

Overloading ,vb.net vs  C#namespace OverloaddingCS
{
Overloading ,vb.net vs  C#    
public class Test
{
Overloading ,vb.net vs  C#        
public static void  Main()
{
Overloading ,vb.net vs  C#            Derived d
=new Derived();
Overloading ,vb.net vs  C#                d.WriteLine(
10);
Overloading ,vb.net vs  C#                d.WriteLine(
"11");
Overloading ,vb.net vs  C#                d.WriteLine(
10.5);
Overloading ,vb.net vs  C#        }

Overloading ,vb.net vs  C#    }

Overloading ,vb.net vs  C#
Overloading ,vb.net vs  C#    
class Base
{
Overloading ,vb.net vs  C#        
public void WriteLine(String AnyString)
{
Overloading ,vb.net vs  C#            Console.WriteLine(AnyString 
+ " called Base:String") ;
Overloading ,vb.net vs  C#        }

Overloading ,vb.net vs  C#
Overloading ,vb.net vs  C#        
public void WriteLine(int AnyInteger)
{
Overloading ,vb.net vs  C#            Console.WriteLine(AnyInteger.ToString() 
+ " called Base:Integer");
Overloading ,vb.net vs  C#        }

Overloading ,vb.net vs  C#    }

Overloading ,vb.net vs  C#
Overloading ,vb.net vs  C#    
class Derived :  Base
{
Overloading ,vb.net vs  C#        
public void WriteLine(double AnyDouble)
{
Overloading ,vb.net vs  C#            Console.WriteLine(AnyDouble.ToString() 
+ " called Derived:double");
Overloading ,vb.net vs  C#        }

Overloading ,vb.net vs  C#    }

Overloading ,vb.net vs  C#}


答案很简单,如果你对c++ 比较熟悉的话

10 called Derived:double
11 called Base:String
10.5 called Derived:double

如果我把类似的代码翻译成 vb.net ,注意是原本的翻译

 Test
 Main()
Overloading ,vb.net vs  C#        Dim objMyTest As New Derived
Overloading ,vb.net vs  C#        
With objMyTest
Overloading ,vb.net vs  C#            .
WriteLine(10)
Overloading ,vb.net vs  C#            .
WriteLine("11")
Overloading ,vb.net vs  C#            .
WriteLine(10.5)
Overloading ,vb.net vs  C#        
End With
Overloading ,vb.net vs  C#        Console.ReadLine()
Overloading ,vb.net vs  C#    
End Sub
Overloading ,vb.net vs  C#
End Class
 Base
)
Overloading ,vb.net vs  C#        Console.
WriteLine(AnyString + " called Base:String")
Overloading ,vb.net vs  C#    
End Sub
Overloading ,vb.net vs  C#
)
Overloading ,vb.net vs  C#        Console.
WriteLine(AnyInteger.ToString + " called Base:Integer")
Overloading ,vb.net vs  C#    
End Sub
Overloading ,vb.net vs  C#
End Class
Overloading ,vb.net vs  C#
 Base
)
Overloading ,vb.net vs  C#        Console.
WriteLine(AnyDouble.ToString + " called Derived:Double")
Overloading ,vb.net vs  C#    
End Sub
Overloading ,vb.net vs  C#
End Class


代码起始是一样的。我直接公布结果,起始跟 C# 的结果不一样

10 called Base:Integer
11 called Base:String
10.5 called Derived:Double

结果出乎意料,起始也是情理之中的事情。

我就不做解释了,关键是提醒各位有 C++ 专项 VB.NET 的时候,不要想当然的以为 VB.NET 的处理方式跟 C# 一样。


相关文章:

  • 2021-05-29
  • 2022-12-23
  • 2022-03-03
  • 2022-01-14
  • 2021-09-04
  • 2021-08-28
  • 2021-06-27
  • 2021-04-10
猜你喜欢
  • 2021-12-12
  • 2021-08-09
  • 2022-01-27
  • 2022-12-23
  • 2022-01-25
  • 2022-01-31
相关资源
相似解决方案