How To MustOverride Shared/Constructor Function Visual Basic












1














I'm currently using Visual Basic for a College Project which requires us to make a simple database system. For my system I have a base(abstract) class called Record which is inherited by the different types of records there are in my database e.g. Member, User, Role.



I am saving my data in csv files and have already written a CSVHandler class. However, I want an elegant way of constructing an instance of a class derived from Record with a string from the CSVHandler.



This is where the problem occurs. The only way I can think of doing this is by making a Constrcutor or Shared Function in each class derived from Record. However, Visual Basic does not allow you make Constructors or Shared Functions also MustOverride.



Here is the code I would expect to write:



' Base Class
Public MustInherit Class Record
Public MustOverride Shared Function fromString(ByVal str as String) As Record
End Class

' Example Of Class Derived From Record
Public Class User
Inherits Record

Private _id As String
Private _name As String

Public Sub New(ByVal id As String, ByVal name As String)
_id = id
_name = name
End Sub

Public Overrides Shared Function fromString(ByVal str as String) As Record
Dim strs() As String = str.Split(",")
Return New User(strs(0), strs(1))
End Function
End Class

' Example Of Creating Instacnce Of User
Dim user1 = User.fromString("1671,Kappeh")


Is there a way to achieve this effect?
Thanks in advanced for the help :)










share|improve this question




















  • 1




    Unfortunately, there is no way in .NET to enforce the existence of a Shared Sub or Function. I've felt the lack before. In one case, it's a factory method, and since I'm already using reflection to implement the factory, I just require the Shared member to be provided by convention (and get it via reflection). In another case, a routine that logically should be shared ends up being a member function just so that I can require it to be present on a generic argument.
    – Craig
    Nov 21 at 15:32






  • 1




    Why would your college ask you to write a database application without a database?
    – Mary
    Nov 21 at 22:30
















1














I'm currently using Visual Basic for a College Project which requires us to make a simple database system. For my system I have a base(abstract) class called Record which is inherited by the different types of records there are in my database e.g. Member, User, Role.



I am saving my data in csv files and have already written a CSVHandler class. However, I want an elegant way of constructing an instance of a class derived from Record with a string from the CSVHandler.



This is where the problem occurs. The only way I can think of doing this is by making a Constrcutor or Shared Function in each class derived from Record. However, Visual Basic does not allow you make Constructors or Shared Functions also MustOverride.



Here is the code I would expect to write:



' Base Class
Public MustInherit Class Record
Public MustOverride Shared Function fromString(ByVal str as String) As Record
End Class

' Example Of Class Derived From Record
Public Class User
Inherits Record

Private _id As String
Private _name As String

Public Sub New(ByVal id As String, ByVal name As String)
_id = id
_name = name
End Sub

Public Overrides Shared Function fromString(ByVal str as String) As Record
Dim strs() As String = str.Split(",")
Return New User(strs(0), strs(1))
End Function
End Class

' Example Of Creating Instacnce Of User
Dim user1 = User.fromString("1671,Kappeh")


Is there a way to achieve this effect?
Thanks in advanced for the help :)










share|improve this question




















  • 1




    Unfortunately, there is no way in .NET to enforce the existence of a Shared Sub or Function. I've felt the lack before. In one case, it's a factory method, and since I'm already using reflection to implement the factory, I just require the Shared member to be provided by convention (and get it via reflection). In another case, a routine that logically should be shared ends up being a member function just so that I can require it to be present on a generic argument.
    – Craig
    Nov 21 at 15:32






  • 1




    Why would your college ask you to write a database application without a database?
    – Mary
    Nov 21 at 22:30














1












1








1







I'm currently using Visual Basic for a College Project which requires us to make a simple database system. For my system I have a base(abstract) class called Record which is inherited by the different types of records there are in my database e.g. Member, User, Role.



I am saving my data in csv files and have already written a CSVHandler class. However, I want an elegant way of constructing an instance of a class derived from Record with a string from the CSVHandler.



This is where the problem occurs. The only way I can think of doing this is by making a Constrcutor or Shared Function in each class derived from Record. However, Visual Basic does not allow you make Constructors or Shared Functions also MustOverride.



Here is the code I would expect to write:



' Base Class
Public MustInherit Class Record
Public MustOverride Shared Function fromString(ByVal str as String) As Record
End Class

' Example Of Class Derived From Record
Public Class User
Inherits Record

Private _id As String
Private _name As String

Public Sub New(ByVal id As String, ByVal name As String)
_id = id
_name = name
End Sub

Public Overrides Shared Function fromString(ByVal str as String) As Record
Dim strs() As String = str.Split(",")
Return New User(strs(0), strs(1))
End Function
End Class

' Example Of Creating Instacnce Of User
Dim user1 = User.fromString("1671,Kappeh")


Is there a way to achieve this effect?
Thanks in advanced for the help :)










share|improve this question















I'm currently using Visual Basic for a College Project which requires us to make a simple database system. For my system I have a base(abstract) class called Record which is inherited by the different types of records there are in my database e.g. Member, User, Role.



I am saving my data in csv files and have already written a CSVHandler class. However, I want an elegant way of constructing an instance of a class derived from Record with a string from the CSVHandler.



This is where the problem occurs. The only way I can think of doing this is by making a Constrcutor or Shared Function in each class derived from Record. However, Visual Basic does not allow you make Constructors or Shared Functions also MustOverride.



Here is the code I would expect to write:



' Base Class
Public MustInherit Class Record
Public MustOverride Shared Function fromString(ByVal str as String) As Record
End Class

' Example Of Class Derived From Record
Public Class User
Inherits Record

Private _id As String
Private _name As String

Public Sub New(ByVal id As String, ByVal name As String)
_id = id
_name = name
End Sub

Public Overrides Shared Function fromString(ByVal str as String) As Record
Dim strs() As String = str.Split(",")
Return New User(strs(0), strs(1))
End Function
End Class

' Example Of Creating Instacnce Of User
Dim user1 = User.fromString("1671,Kappeh")


Is there a way to achieve this effect?
Thanks in advanced for the help :)







database vb.net inheritance constructor shared






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 21 at 16:44

























asked Nov 21 at 2:34









Kieran Powell

305




305








  • 1




    Unfortunately, there is no way in .NET to enforce the existence of a Shared Sub or Function. I've felt the lack before. In one case, it's a factory method, and since I'm already using reflection to implement the factory, I just require the Shared member to be provided by convention (and get it via reflection). In another case, a routine that logically should be shared ends up being a member function just so that I can require it to be present on a generic argument.
    – Craig
    Nov 21 at 15:32






  • 1




    Why would your college ask you to write a database application without a database?
    – Mary
    Nov 21 at 22:30














  • 1




    Unfortunately, there is no way in .NET to enforce the existence of a Shared Sub or Function. I've felt the lack before. In one case, it's a factory method, and since I'm already using reflection to implement the factory, I just require the Shared member to be provided by convention (and get it via reflection). In another case, a routine that logically should be shared ends up being a member function just so that I can require it to be present on a generic argument.
    – Craig
    Nov 21 at 15:32






  • 1




    Why would your college ask you to write a database application without a database?
    – Mary
    Nov 21 at 22:30








1




1




Unfortunately, there is no way in .NET to enforce the existence of a Shared Sub or Function. I've felt the lack before. In one case, it's a factory method, and since I'm already using reflection to implement the factory, I just require the Shared member to be provided by convention (and get it via reflection). In another case, a routine that logically should be shared ends up being a member function just so that I can require it to be present on a generic argument.
– Craig
Nov 21 at 15:32




Unfortunately, there is no way in .NET to enforce the existence of a Shared Sub or Function. I've felt the lack before. In one case, it's a factory method, and since I'm already using reflection to implement the factory, I just require the Shared member to be provided by convention (and get it via reflection). In another case, a routine that logically should be shared ends up being a member function just so that I can require it to be present on a generic argument.
– Craig
Nov 21 at 15:32




1




1




Why would your college ask you to write a database application without a database?
– Mary
Nov 21 at 22:30




Why would your college ask you to write a database application without a database?
– Mary
Nov 21 at 22:30












2 Answers
2






active

oldest

votes


















1














The following is similar to the answer from @jmcilhinney in that it forces the derived class to implement an initialization method. However it makes use of a generic shared function and uses the little known GetUninitializedObject method to get around using the generic New constraint and it's requirement of an accessible parameter-less constructor.



Public MustInherit Class Record
Public Shared Function fromString(Of T As {Record})(ByVal str As String) As T
' create an unintialized instance of T
Dim ret As T = DirectCast(System.Runtime.Serialization.FormatterServices.GetUninitializedObject(GetType(T)), T)
ret.Initialize(str)
Return ret
End Function

Protected MustOverride Sub Initialize(source As String)
End Class


The User class then would be something like this:



Public Class User : Inherits Record
Private _id As String
Private _name As String

Public Sub New(ByVal id As String, ByVal name As String)
_id = id
_name = name
End Sub

Protected Overrides Sub Initialize(source As String)
Dim strs() As String = source.Split(","c)
_id = strs(0)
_name = strs(1)
End Sub
End Class


Example usage:



Dim userRecord As User = Record.fromString(Of User)("1,2")





share|improve this answer





















  • I do like this solution. Although I have a working code, I may give this approach a shot as it is more elegant than mine. It also ties in well with how some of my other code works. Thank you very much :)
    – Kieran Powell
    Nov 21 at 14:04





















1














Have your constructor call a Protected MustOverride method that does the initialisation.



Public MustInherit Class Record

'This is required because each derived constructor must be able to implicitly invoke a parameterless
'base constructor if it doesn't explicitly invoke a base constructor with parameters.
Protected Sub New()
End Sub

Public Sub New(csv As String)
Init(csv)
End Sub

Protected MustOverride Sub Init(csv As String)

End Class

Public Class User
Inherits Record

Private Property Id As String
Private Property Name As String

'This is still required because you can use a base constructor directly to create a derived instance.
Public Sub New(csv As String)
MyBase.New(csv)
End Sub

Public Sub New(id As String, name As String)
Id = id
Name = name
End Sub

Protected Overrides Sub Init(csv As String)
'Add your type-specific implementation here.
End Sub

End Class


This "solution" doesn't actually do what I thought it would because, while it forces you to override Init in a derived class, you still have to provide a derived constructor that invokes the base constructor that calls Init and you still can't enforce that. I think that I'll leave this as an answer though, because, while it doesn't actually provide a solution to your problem, it demonstrates further why (as far as I can tell) there is no such solution.






share|improve this answer























  • Thanks for your time and help. I think what I will do is make a MustOverride Sub like setFromString(ByVal str As String) Which I can use after the instance of the object has been created. It seems to be the only way I can think of to make it enforced.
    – Kieran Powell
    Nov 21 at 3:50











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53404542%2fhow-to-mustoverride-shared-constructor-function-visual-basic%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









1














The following is similar to the answer from @jmcilhinney in that it forces the derived class to implement an initialization method. However it makes use of a generic shared function and uses the little known GetUninitializedObject method to get around using the generic New constraint and it's requirement of an accessible parameter-less constructor.



Public MustInherit Class Record
Public Shared Function fromString(Of T As {Record})(ByVal str As String) As T
' create an unintialized instance of T
Dim ret As T = DirectCast(System.Runtime.Serialization.FormatterServices.GetUninitializedObject(GetType(T)), T)
ret.Initialize(str)
Return ret
End Function

Protected MustOverride Sub Initialize(source As String)
End Class


The User class then would be something like this:



Public Class User : Inherits Record
Private _id As String
Private _name As String

Public Sub New(ByVal id As String, ByVal name As String)
_id = id
_name = name
End Sub

Protected Overrides Sub Initialize(source As String)
Dim strs() As String = source.Split(","c)
_id = strs(0)
_name = strs(1)
End Sub
End Class


Example usage:



Dim userRecord As User = Record.fromString(Of User)("1,2")





share|improve this answer





















  • I do like this solution. Although I have a working code, I may give this approach a shot as it is more elegant than mine. It also ties in well with how some of my other code works. Thank you very much :)
    – Kieran Powell
    Nov 21 at 14:04


















1














The following is similar to the answer from @jmcilhinney in that it forces the derived class to implement an initialization method. However it makes use of a generic shared function and uses the little known GetUninitializedObject method to get around using the generic New constraint and it's requirement of an accessible parameter-less constructor.



Public MustInherit Class Record
Public Shared Function fromString(Of T As {Record})(ByVal str As String) As T
' create an unintialized instance of T
Dim ret As T = DirectCast(System.Runtime.Serialization.FormatterServices.GetUninitializedObject(GetType(T)), T)
ret.Initialize(str)
Return ret
End Function

Protected MustOverride Sub Initialize(source As String)
End Class


The User class then would be something like this:



Public Class User : Inherits Record
Private _id As String
Private _name As String

Public Sub New(ByVal id As String, ByVal name As String)
_id = id
_name = name
End Sub

Protected Overrides Sub Initialize(source As String)
Dim strs() As String = source.Split(","c)
_id = strs(0)
_name = strs(1)
End Sub
End Class


Example usage:



Dim userRecord As User = Record.fromString(Of User)("1,2")





share|improve this answer





















  • I do like this solution. Although I have a working code, I may give this approach a shot as it is more elegant than mine. It also ties in well with how some of my other code works. Thank you very much :)
    – Kieran Powell
    Nov 21 at 14:04
















1












1








1






The following is similar to the answer from @jmcilhinney in that it forces the derived class to implement an initialization method. However it makes use of a generic shared function and uses the little known GetUninitializedObject method to get around using the generic New constraint and it's requirement of an accessible parameter-less constructor.



Public MustInherit Class Record
Public Shared Function fromString(Of T As {Record})(ByVal str As String) As T
' create an unintialized instance of T
Dim ret As T = DirectCast(System.Runtime.Serialization.FormatterServices.GetUninitializedObject(GetType(T)), T)
ret.Initialize(str)
Return ret
End Function

Protected MustOverride Sub Initialize(source As String)
End Class


The User class then would be something like this:



Public Class User : Inherits Record
Private _id As String
Private _name As String

Public Sub New(ByVal id As String, ByVal name As String)
_id = id
_name = name
End Sub

Protected Overrides Sub Initialize(source As String)
Dim strs() As String = source.Split(","c)
_id = strs(0)
_name = strs(1)
End Sub
End Class


Example usage:



Dim userRecord As User = Record.fromString(Of User)("1,2")





share|improve this answer












The following is similar to the answer from @jmcilhinney in that it forces the derived class to implement an initialization method. However it makes use of a generic shared function and uses the little known GetUninitializedObject method to get around using the generic New constraint and it's requirement of an accessible parameter-less constructor.



Public MustInherit Class Record
Public Shared Function fromString(Of T As {Record})(ByVal str As String) As T
' create an unintialized instance of T
Dim ret As T = DirectCast(System.Runtime.Serialization.FormatterServices.GetUninitializedObject(GetType(T)), T)
ret.Initialize(str)
Return ret
End Function

Protected MustOverride Sub Initialize(source As String)
End Class


The User class then would be something like this:



Public Class User : Inherits Record
Private _id As String
Private _name As String

Public Sub New(ByVal id As String, ByVal name As String)
_id = id
_name = name
End Sub

Protected Overrides Sub Initialize(source As String)
Dim strs() As String = source.Split(","c)
_id = strs(0)
_name = strs(1)
End Sub
End Class


Example usage:



Dim userRecord As User = Record.fromString(Of User)("1,2")






share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 21 at 4:43









TnTinMn

6,30931027




6,30931027












  • I do like this solution. Although I have a working code, I may give this approach a shot as it is more elegant than mine. It also ties in well with how some of my other code works. Thank you very much :)
    – Kieran Powell
    Nov 21 at 14:04




















  • I do like this solution. Although I have a working code, I may give this approach a shot as it is more elegant than mine. It also ties in well with how some of my other code works. Thank you very much :)
    – Kieran Powell
    Nov 21 at 14:04


















I do like this solution. Although I have a working code, I may give this approach a shot as it is more elegant than mine. It also ties in well with how some of my other code works. Thank you very much :)
– Kieran Powell
Nov 21 at 14:04






I do like this solution. Although I have a working code, I may give this approach a shot as it is more elegant than mine. It also ties in well with how some of my other code works. Thank you very much :)
– Kieran Powell
Nov 21 at 14:04















1














Have your constructor call a Protected MustOverride method that does the initialisation.



Public MustInherit Class Record

'This is required because each derived constructor must be able to implicitly invoke a parameterless
'base constructor if it doesn't explicitly invoke a base constructor with parameters.
Protected Sub New()
End Sub

Public Sub New(csv As String)
Init(csv)
End Sub

Protected MustOverride Sub Init(csv As String)

End Class

Public Class User
Inherits Record

Private Property Id As String
Private Property Name As String

'This is still required because you can use a base constructor directly to create a derived instance.
Public Sub New(csv As String)
MyBase.New(csv)
End Sub

Public Sub New(id As String, name As String)
Id = id
Name = name
End Sub

Protected Overrides Sub Init(csv As String)
'Add your type-specific implementation here.
End Sub

End Class


This "solution" doesn't actually do what I thought it would because, while it forces you to override Init in a derived class, you still have to provide a derived constructor that invokes the base constructor that calls Init and you still can't enforce that. I think that I'll leave this as an answer though, because, while it doesn't actually provide a solution to your problem, it demonstrates further why (as far as I can tell) there is no such solution.






share|improve this answer























  • Thanks for your time and help. I think what I will do is make a MustOverride Sub like setFromString(ByVal str As String) Which I can use after the instance of the object has been created. It seems to be the only way I can think of to make it enforced.
    – Kieran Powell
    Nov 21 at 3:50
















1














Have your constructor call a Protected MustOverride method that does the initialisation.



Public MustInherit Class Record

'This is required because each derived constructor must be able to implicitly invoke a parameterless
'base constructor if it doesn't explicitly invoke a base constructor with parameters.
Protected Sub New()
End Sub

Public Sub New(csv As String)
Init(csv)
End Sub

Protected MustOverride Sub Init(csv As String)

End Class

Public Class User
Inherits Record

Private Property Id As String
Private Property Name As String

'This is still required because you can use a base constructor directly to create a derived instance.
Public Sub New(csv As String)
MyBase.New(csv)
End Sub

Public Sub New(id As String, name As String)
Id = id
Name = name
End Sub

Protected Overrides Sub Init(csv As String)
'Add your type-specific implementation here.
End Sub

End Class


This "solution" doesn't actually do what I thought it would because, while it forces you to override Init in a derived class, you still have to provide a derived constructor that invokes the base constructor that calls Init and you still can't enforce that. I think that I'll leave this as an answer though, because, while it doesn't actually provide a solution to your problem, it demonstrates further why (as far as I can tell) there is no such solution.






share|improve this answer























  • Thanks for your time and help. I think what I will do is make a MustOverride Sub like setFromString(ByVal str As String) Which I can use after the instance of the object has been created. It seems to be the only way I can think of to make it enforced.
    – Kieran Powell
    Nov 21 at 3:50














1












1








1






Have your constructor call a Protected MustOverride method that does the initialisation.



Public MustInherit Class Record

'This is required because each derived constructor must be able to implicitly invoke a parameterless
'base constructor if it doesn't explicitly invoke a base constructor with parameters.
Protected Sub New()
End Sub

Public Sub New(csv As String)
Init(csv)
End Sub

Protected MustOverride Sub Init(csv As String)

End Class

Public Class User
Inherits Record

Private Property Id As String
Private Property Name As String

'This is still required because you can use a base constructor directly to create a derived instance.
Public Sub New(csv As String)
MyBase.New(csv)
End Sub

Public Sub New(id As String, name As String)
Id = id
Name = name
End Sub

Protected Overrides Sub Init(csv As String)
'Add your type-specific implementation here.
End Sub

End Class


This "solution" doesn't actually do what I thought it would because, while it forces you to override Init in a derived class, you still have to provide a derived constructor that invokes the base constructor that calls Init and you still can't enforce that. I think that I'll leave this as an answer though, because, while it doesn't actually provide a solution to your problem, it demonstrates further why (as far as I can tell) there is no such solution.






share|improve this answer














Have your constructor call a Protected MustOverride method that does the initialisation.



Public MustInherit Class Record

'This is required because each derived constructor must be able to implicitly invoke a parameterless
'base constructor if it doesn't explicitly invoke a base constructor with parameters.
Protected Sub New()
End Sub

Public Sub New(csv As String)
Init(csv)
End Sub

Protected MustOverride Sub Init(csv As String)

End Class

Public Class User
Inherits Record

Private Property Id As String
Private Property Name As String

'This is still required because you can use a base constructor directly to create a derived instance.
Public Sub New(csv As String)
MyBase.New(csv)
End Sub

Public Sub New(id As String, name As String)
Id = id
Name = name
End Sub

Protected Overrides Sub Init(csv As String)
'Add your type-specific implementation here.
End Sub

End Class


This "solution" doesn't actually do what I thought it would because, while it forces you to override Init in a derived class, you still have to provide a derived constructor that invokes the base constructor that calls Init and you still can't enforce that. I think that I'll leave this as an answer though, because, while it doesn't actually provide a solution to your problem, it demonstrates further why (as far as I can tell) there is no such solution.







share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 21 at 2:56

























answered Nov 21 at 2:43









jmcilhinney

25.2k21932




25.2k21932












  • Thanks for your time and help. I think what I will do is make a MustOverride Sub like setFromString(ByVal str As String) Which I can use after the instance of the object has been created. It seems to be the only way I can think of to make it enforced.
    – Kieran Powell
    Nov 21 at 3:50


















  • Thanks for your time and help. I think what I will do is make a MustOverride Sub like setFromString(ByVal str As String) Which I can use after the instance of the object has been created. It seems to be the only way I can think of to make it enforced.
    – Kieran Powell
    Nov 21 at 3:50
















Thanks for your time and help. I think what I will do is make a MustOverride Sub like setFromString(ByVal str As String) Which I can use after the instance of the object has been created. It seems to be the only way I can think of to make it enforced.
– Kieran Powell
Nov 21 at 3:50




Thanks for your time and help. I think what I will do is make a MustOverride Sub like setFromString(ByVal str As String) Which I can use after the instance of the object has been created. It seems to be the only way I can think of to make it enforced.
– Kieran Powell
Nov 21 at 3:50


















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53404542%2fhow-to-mustoverride-shared-constructor-function-visual-basic%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

404 Error Contact Form 7 ajax form submitting

How to know if a Active Directory user can login interactively

TypeError: fit_transform() missing 1 required positional argument: 'X'