More Specific Type From Base Shared Constructor?

Nov 26, 2010

How do I get using reflection the most generic type from a shared constructor in the base class :

Public Class Foo()
Shared Sub New()
'Here we have code to get the type[code]....

I expect the result to be Bar type and not the Foo. Is it possible?

View 1 Replies


ADVERTISEMENT

.NET Be Forced To Initialize Instance Variables BEFORE Invoking The Base Type Constructor?

Jan 5, 2011

After debugging a particularly tricky issue in VB.NET involving the order in which instance variables are initialized, I discovered that there is a breaking discrepancy between the behavior that I expected from C# and the actual behavior in VB.NET.Nota bene: This question concerns a slight discrepancy in the behaviors of VB.NET and C#. If you're a language bigot that is unable to provide an answer other than "that's why you should use C#, noob", there is nothing for you to see here; kindly move along.Specifically, I expected the behavior outlined by the C# Language Specification (emphasis added):

When an instance constructor has no constructor initializer, or it has a constructor initializer of the form base(...), that constructor implicitly performs the initializations specified by the variable-initializers of the instance fields declared in its class. This corresponds to a sequence of assignments that are executed immediately upon entry to the constructor and before the implicit invocation of the direct base class constructor. The variable initializers are executed in the textual order in which they appear in the class declaration.

Contrast that with the portion of the VB.NET Language Specification concerning Instance Constructors, which says (emphasis added): When a constructor's first statement is of the form MyBase.New(...), the constructor implicitly performs the initializations specified by the variable initializers of the instance variables declared in the type. This corresponds to a sequence of assignments that are executed immediately after invoking the direct base type constructor. Such ordering ensures that all base instance variables are initialized by their variable initializers before any statements that have access to the instance are executed.

The discrepancy here is immediately obvious. C# initializes class-level variables before calling the base constructor. VB.NET does exactly the reverse, apparently preferring to call the base constructor before setting the values of instance fields.If you want to see some code, this related question provides a more concrete example of the divergent behavior. Unfortunately, it does not provide any hints as to how one might coerce VB.NET into following the model established by C#.

I'm less interested in why the designers of the two languages chose such divergent approaches than I am in possible workarounds for the problem. Ultimately, my question is as follows: Is there any way that I can write or structure my code in VB.NET to force instance variables to be initialized before the base type's constructor is called, as is the standard behavior in C#?

View 2 Replies

Shared Method Not Calling Shared Constructor

Aug 12, 2009

Given in the following language specification, for me at least, calling Db.Foobar() [In the following code] does not indeed call off to the Shared Constructors of the base classes. I am curious as to a) is this my own fault for doing something wrong or b) is this an error in the language specification[code]...

View 2 Replies

.Net OOP Superclass Base.net And Constructor Parameters?

Mar 13, 2009

I have a base class that contains a fairly large number of parameters in it's New constructor. I have 7 subclasses that inherit the Super base class. My question/issue is, all of the subclasses use the same values for most of the parameters in the New constructor of the base class and these subclasses can be called one after the other. I would like to populate the common values for the superclass and then use those for each of the subclasses, but I can't come up with a good way to do this. If I could figure out how to do this, I wouldn't have to pass all of those parameters in the MyBase.New call for each subclass. I'll try to illustrate with some code .

[Code]...

View 3 Replies

C# - Keyword 'this' Not Available Calling The Base Constructor?

Mar 15, 2010

In the inherited class I use the base constructor, but I can't use the class's members calling this base constructor. In this example I have a PicturedLabel that knows its own color and has an image. A TypedLabel : PictureLabel knows its type but uses the base color.

The (base) image that uses TypedLabel should be colored with the (base)color, however, I can't obtain this color

Error: Keyword 'this' is not available in the current context`

[Code]...

View 4 Replies

Why Does C# Set Private Variables Before The Base Constructor While .NET Does The Opposite

Mar 3, 2011

comparing C# code and VB.NET and the results between the seemingly identical code were entirely different.(Why C# is always winning over VB.NET?)The explanation given is that C# will initialize the class fields, then call the base constructor, but VB.NET does the exact opposite. Is there a technical reason for the languages to be different? At first glance, it seems that either approach is equally valid, but I can't fathom why they wouldn't have selected the SAME approach.

EDIT: As 'Jeffrey L Whitledge' has pointed out, VB6 did not have inheritance, so I don't think we can say 'to keep VB.NET and VB6 more closely related'.

View 1 Replies

Use Derived Class Shared Variables In Shared Methods Of Base Class?

Jun 4, 2010

I am trying to add shared members in derived classes and use that values in base classes...

I have base

class DBLayer
public shared function GetDetail(byval UIN as integer)
dim StrSql = string.format("select * from {0} where uin = {1}", tablename, uin)
end function
end class

[Code]..

currently there is error using the tablename variable of derived class in base class but i want to use it i dun know other techniques if other solutions are better then u can post it or u can say how can i make it work? confused...

View 2 Replies

Constructor - Whats The Best Way To Initialize Shared Members In A Class In VB.Net?

Dec 8, 2010

I was looking on the interweb to see if there were any good examples on how to initialize shared members within a class while still initializing instance variables. I did find an expression that might fit to the answer:

[code]...

How do I initialize both instance and shared members without re-initializing the shared members every time an object is created from a class? Thanks!

View 2 Replies

VS 2008 Finding A Specific Row And Specific Columns In Data Base File (Access)?

Jul 24, 2011

I wonder if it is possible to find a specific row and specific columns in data base file (Access) . You see , I am using a DataGridView control to show only SOME of the columns (fields) of a table from an Access file . For example , lets say that in the DataGridView control I only show the following fields :Field1 , Field2 and Field3 .Now , when the user selects an entry in the DataGridView control , I want to insert the text from Field4 into a text box on the form .

The problem , however , is that I don't know how to get the specific row in the data base file and also I don't know how to get the text in column (field) Field4 of that row .One thing that might be important is that the index of the row in the data base file is not necessarily the same with the index of the current row in the DataGridView control . This is because in the DataGridView control the rows are order by the contents in the ID Field .ol .

View 2 Replies

Error: Reference To A Non-shared Member | Constructor; Pass Variable

Mar 13, 2010

I've been trying implement Constructor method in passing variable between two forms.Just a rough user interface guide - issue Invoice. User would type in all the Customer Name, Document Number. Once he reached Item Details, a Child Form would pop-up for the User to select/search the Invoice's Item; Once selected, the selected item would showed in the primary Form.

What I had tried is, the Constructor method worked perfectly when it is self-contain in a new project, yet to be implement in my application.But when I implemented, there is an error: Reference to a non-shared member requires an object reference.

[Code]...

View 6 Replies

OOP - Shared Methods And Base Properties?

Feb 25, 2009

If you can't use Me. in a non-instance method, how would you use properties/functions from a base class in a Shared method?

For example, ClassB inherits from ClassA
ClassB has a Shared Method DoWork();
ClassA has a ReadOnly Property SecurityKey

How do I Public Sub DoWork() Dim test as String = Me.SecurityKey End Sub

View 5 Replies

Base Class With Shared Fields And Functions Good Design ?

Apr 22, 2010

I've got a BaseDataClass with shared fields and functions

CODE:

I have several classes that derive from this base class. The derived classes have all Shared functions that can be called directly from the BLL with no instantiation. The functions in these derived classes call the base Init(), call their specific stored procs, call the base CleanAll() and then return the results.

So if I have 5 derived classes with 10 functions each, totaling 50 possible function calls, since they are all Shared, the CLR only calls one at a time, right? All calls are queued to wait until each Shared function completes.

Is there a better design with having Shared functions in your DAL and still have base class functions? Or since I have a base class, is it better to move towards instance methods within the DAL?

View 1 Replies

VS 2008 Dragdrop - Check If The Present Data Type Inherits From The Base Type

Aug 20, 2009

I have a number of controls (Device1, Device2, etc.) that all inherit from BaseDeviceControl. In the DragEnter event handler I am trying to test for the correct type by using the BaseDevvceControl like this....

[Code]....

View 8 Replies

.net - Get A Base Class Method Return Type To Be The Subclass Type?

Nov 23, 2009

I have a copy function that I'd like to override in subclasses to return the type of the subclass. Here are my interfaces:

Public Interface IBase(Of T)
Function Copy() As T
End Interface

[Code]....

View 4 Replies

VB Allows The Type Parameters To Be Used As The Base Class For The Generic Type?

Mar 30, 2010

1) VB Allows non-type template parameters2) VB supports explicit specialization 3) VB allows the type parameters to be used as the base class for the generic type4) VB allows a generic type parameter itself to to be a generic 5) VB enforces that all codes are valid for all types of parametrs

View 1 Replies

Casting From Base Type To Derived Type

Jun 29, 2010

I'm wrestling with this treeview control. I have extended the TreeNode class to attach some extra data to the node. Basically, I added one property:[code]Is there a way to cast from a base type to a derived type?

View 11 Replies

Pass A Type To A Constructor For Instantiation?

Mar 7, 2011

What I want to do is pass a Type to another object's constructor, where the other object creates a new instance of Type. I can create a constructor with a parameter declared as System.Type without problem, but when I try to instantiate it tells me there is no such type.

Public Sub New(targettype As System.Type)
Dim Test As System.Windows.Forms.Form = New targettype
End Sub

View 3 Replies

Reflection - Passing Values To Constructor Of Type T?

Jun 18, 2012

I have this code to get the default constructor:

Public Function f(ByVal t As System.Type) As Object
Return t.GetConstructor(New System.Type() {}).Invoke(New Object() {})
End Function

I need to pass values to the Constructor as

Public Function f(ByVal t As System.Type) As Object
Return t.GetConstructor(New System.Type() {someInteger,someString,etc.etc}).Invoke(New Object() {})
End Function

Also I have 3 classes of Type T, with all having different parametric constructor. It's important for me to have it generic as the Classes of type T might increase in future with less or more parameters.

View 1 Replies

XmlSerializer(Type) Constructor Throws ArgumentNullException

Dec 27, 2010

I've been having problems with following code on some computers, while it's worked super on others (most):

Dim xmlSer As New System.Xml.Serialization.XmlSerializer(GetType(XMLContext))
which produces the stacktrace:
System.ArgumentNullException: Value cannot be null.
Parameter name: type
at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)

How can that code throw that exception, when the argument is drawn from a gettype call, and note that it doesn't happen when debugging on my own PC, only when it's installed on some of the client PC's???

View 15 Replies

C# - .net Type Mismatch Looking Up A Constructor By Reflection (Integer() Vs System.Int32[])?

Jan 29, 2010

I'm passing a type name and some parameters from C# code into a navigation framework written in VB. The navigation framework looks for a constructor on the type that matches the parameters passed in using Type.GetConstructor(Types()). The constructor that I'm looking for expects an array of integers Integer() in vb. But it gets an array of System.Int32. I've gone so far as to try this:

[Code]...

And the VB code still sees System.Int32 on the other end, which means that it doesn't find the constructor.

View 2 Replies

Can't Inherit Shared Properties From A Base Class In A Child Class?

Dec 29, 2010

This is another one of my "I think it's not possible but I need confirmation" questions.I have a base class for a bunch of child classes. Right now, this base class has a few common properties the children use, like Name. The base is an abstract class (MustInherit)Technically, this means that everytime a child class is instantiated, it lugs around, in memory, its own copy of Name. The thing is, Name is going to be a fixed value for all instances of a given child. I.e., Child1.Name will return "child_object1", and Child2.Name will return "child_object2".

View 1 Replies

Is A Delegate Type And Requires A Single 'addressof' Expression As The Only Argument To The Constructor

May 10, 2010

I got 2 classes in a form, and I would like to pass a value from a textbox to the other class, so I decided to use Deligate.

Below is the code.

Public Delegate Sub delPassSize(ByVal text As TextBox)
'To get size from Class Calculate(Class 2)
Public Sub GetSize(ByVal txtForm1 As TextBox)

[code]....

and the error message is 'cls.Getsize is a delegate type and requires a single 'addressof' expression as the only argument to the constructor.'

View 2 Replies

Put The XMLSerializer Behind A 'facade' Class That User Won't Have To Supply Type Info To The Constructor?

Mar 19, 2012

I wish to put the XMLSerializer behind a 'facade' class of mine so that user wont have to supply type info to the constructor. But doing this has a problem. Consider this class:

Class XmlFormatter
Private Shared xs As XmlSerializer
Public Function Deserialize(ByVal serializationStream As Stream) As Object
Dim o As Object = Nothing

[code]....

The problem is that the user of this class cannot use Deserialize without first using Serialize because the XMLSerializer instance is created in Serialize and it is shared. But using Deserialize without this instance will simply return Nothing.

View 1 Replies

Type Of Data Base Would Be Esiest To Do It?

Dec 29, 2011

Is anyone any good with Databases & VB if so could you give me your opinion on the diagram i have drew and my application.ive never used a database before but would like to encorprate one into my app - i have done a diagram - i would like to know if it is possible to do and what type of data base would be esiest to do it with.

View 9 Replies

Where To Find Base Type Of A Class

Jun 9, 2009

One thing that always bugged me, is that I do not see the base type in Visual Studio.I just stumbled on this, because I tried to cast a System. Windows.Forms.MenuItem to a System.Windows.Forms.Control..In eclipse the "intellisense" (or whatever it is called) shows me while exploring the members of a class for each member from which base class it is inherited.In Visual Studio I cannot see the base class, even if I use the Object browser or the help.[code]Is there a way to query the base type tree of a class at Design Time?

View 8 Replies

VMWare Specific Or Perhaps The Type Of Install Specific?

Apr 27, 2010

Strange story... I downloaded VMWare but it has since advised of an available update. I downloaded the update and when I click to install it, a window comes up with VB Code from a project I created a while back in a completely separate folder from this install file. I then tried downloading the trial of VMWare Workstation and when running the installer it shows the same thing. I don't know of anyway to contact VMWare support since I don't pay for any services or products and all there is available is a FAQ type section. Of course this problem would not be in there, nor can I find any such related issue online. his is VMWare specific or perhaps the type of install specific. I have no other issues with any other app installations other than with VMWare installations.

View 2 Replies

Pass A Delegate Into A Constructor Of An Abstract Class From A Descendant's Constructor?

Feb 15, 2010

I have an abstract class which requires a delegate to function. I pass the delegate into the constructor. Now that I have a non default constructor I need to call the abstract class's constructors from the concrete class which means that I need to use MyBase.New(...). I have included a quick example below.

Public MustInherit Class BaseClass
Public Delegate Sub WorkMethod()
Private _Work As WorkMethod

[code]....

I have tried to do this but I keep getting the following error: "Implicit reference to object under construction is not valid when calling another constructor".Can I not do what I am trying to do above? I initially had the delegate setup in its own setter method. But then I am creating a deceptive API because it does require a point to a method to work properly.

View 3 Replies

Get An Enum To Explicitly Cast To It's Base Type?

Mar 9, 2010

Is there a way to get an enum to explicitly cast to it's base type?If I have something like this:

Code:
Public Enum Packets As Byte
Stuff = &H0
End Enum

I have to do

Code:
Dim test As Byte = CByte(Packets.Stuff)

Rather than

Code:
Dim test As Byte = Packets.Stuff

I don't see why that's the way it works, since you know that the enum will always have values of the base type.

View 4 Replies

Passing Base Object Type When Using Inherited One?

Oct 8, 2010

I have a project that has mainly two objects, both inheriting from a base. Like this:

Public Class Vehicle
Property Model As String
Property Make As String[code].....

The above function doesn't work because myVehicle is a Vehicle, not a Truck.Is there a way I can pass around a Vehicle type and have the IDE know which type to use? Or am I completely missing a better way to do this?

View 5 Replies

Why Is Constructor Call Valid Only As The First Statement In An Instance Constructor

Nov 2, 2009

what's the rationale behind this limitation: Constructor call is valid only as the first statement in an instance constructor i want to pass an argument to my constructor which validates this argument and calls mybase.new according to this argument but it doesn't let me

example:

Public Class prob
Inherits System.ApplicationException
Public Sub New(ByVal problem As String, ByRef inner_exception As Exception)

[code]....

View 16 Replies







Copyrights 2005-15 www.BigResource.com, All rights reserved