Can Overloading be switched off?

Public support forum for peer to peer support with related to the Visual Objects and Vulcan.NET products
Post Reply
User avatar
ArneOrtlinghaus
Posts: 414
Joined: Tue Nov 10, 2015 7:48 am
Location: Italy

Can Overloading be switched off?

Post by ArneOrtlinghaus »

Different times I have inserted errors using virtual methods and unintentionally writing parameters with different types compared to the basic object method.
The compiler treats this as an overloaded method. This is correct behavior, but it is not what I originally intended looking at the framework of classes we are using. When calling the method late bound a runtime error is happening. Also the original method is not overridden as I intended to do.

Overloading can be a nice feature, it only interferes sometimes with virtual method design.
What could be nice to have an additional compiler switch for the assembly to be able to choose using virtual without overloading or overloading without virtual methods - or having both knowing that parameters must be verified correctly.

Arne
User avatar
robert
Posts: 4558
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Can Overloading be switched off?

Post by robert »

Arne,

"Virtual Methods" are not enabled by default. Most likely you have the language option "All instance methods virtual" enabled.
If you disable this option then you can control yourself which methods are virtual and which not by using the VIRTUAL keyword and/or OVERRIDE keyword.

Code: Select all

CLASS Parent
VIRTUAL METHOD Speak AS VOID
Console.WriteLine("Parent")
END CLASS

CLASS Child INHERIT Parent
OVERRIDE METHOD Speak AS VOID
Console.WriteLine("Child")
END CLASS

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
Post Reply