I created an enumeration in a class library... and compiled it into a dll
Public Enum TestEnum
x = 0
End Enum
I then imported this reference to a windows form project as a referenced dll Public Class Form1 Dim mytestenum As TestPublicEnum.TestEnum Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
In the following code i get a warning at line 59:Warning 1: Access of shared member, constant member, enum member or nested type through an instance; qualifying expression will not be evaluated.and.. At line 78 I get this Warning:
Warning 2 Property 'SelectedCustomer' doesn't return a value on all code paths. A null reference exception could occur at run time when the result is used.
The program compiles and runs well, but i cant' undesrtand the reason for these warnings. Any Idea ?
1: Public Class Form1 2: 3: 'Form level members 4: Private objCustomers As New ArrayList
Cannot appear to be able to get this function to not have the above error.Private Function GetIncidentActions(ByVal FromAgentID As Integer, ByVal ToAgentID As Integer, ByVal incidentAction As Integer, ByVal ActionDate As Date) As String
i changed a class variable to shared so i can access it in all instances of the class, but it caused an error. what is causing this, and how can i fix it?
I've used .NET for a long time but I've never really been sure of this warning :-"Access of a shared member, constant member, enum member or nested type through an instance; qualifying expression will not be evaluated"Whilst this is not causing an issue and I've not really experienced this problem a lot with my own code, converting some code from an old .NET project gives 10's of these errors.
Code: Protected Function GetContentTypeFromString(ByVal TypeString As String) As MailContentType Select Case TypeString.ToLower
After I formatted my laptop and reinstalled Visual Studio 2005, I receive a lot of same error as below message. "Access of shared member through an instance; qualifying expression will not be evaluated" If I click the error, it direct me to the line and all 102 error suggest me to add "Windows.Forms." before "DialogResult.OK". Should I add something on "Reference"?
I have a custom class called "Time" with the following function, for determining if one Time equals another Time.
Public Shared Shadows Function Equals(ByVal Time1 As Time, ByVal Time2 As Time) As Boolean Dim x(2) As Integer x(0) = CInt(Time1.Hour) x(1) = CInt(Time1.Minute)
[code].....
Access of shared member, constant member, enum member or nested type through an instance; qualifying expression will not be evaluated.I know it shouldn't do any harm, just let the compiler skip evaluation, but is it a way of getting rid of this warning?
I'm a newbie to threading, trying to learn it as I go. don't make any assumptions and try to explain threading concepts and rules that might seem obvious. I have a Module (Static class) as follows:
Module Main Private ReadOnly _dbConn As SqlClient.SqlConnection Public ReadOnly Property DBConn() As SqlClient.SqlConnection Get Debug.Print("Accessing DBConn")
[Code]...
All throughout the application, when i access DBConn on the same thread, it works as expected. howeve, later on I created a background worker that tries to access DBConn and nothing happens, the thread just hanges (the Background worker). I dont get the printout and the application doesnt continue. the background worker thread doesnt continue past that point, and so the thread never exits. I dont get any exceptions, and i Cant debug in Visual Studio (visual studio hangs).I guess its a 2 part question: why cant i access DBConn from the other thread, and why does it hang without giving me a threadAccess exception? also, why does visual studio hang (I'm assuming it hanges because the thread is hanging)?
Please Note: I am not asking about practice. I know I shouldnt be sharing the same connection, rather returning a new connection. in this particular application it is safe since (although i execute it on a background thread) as per the flow of the application, the connection can only be accessed one at a time. I just want to know why it hangs accross the thread.
re: Access of shared member constant member enum member or nested type through an instance qualifying expression may not be evaluated I understand that this warning means that you should not reference a shared member via an instance. However, in my test case Test2.t.x("3"), I don't understand why it thinks I'm using an instance, since t is also a shared member. Also, note Test3. See what happens when you change declaration of GetObject() As Object to As Test3. I think I understand the behavior (not eval'd until runtime)
Public Shared Function MyValue() As Integer Return 0 End Function Public Sub Code()
[Code]...
Me.MyValue gives a warning in VB.NET and (the equivalent code gives) an error in C#. Is there a particular reason for this? I find it more intuitive/natural to access the shared function using 'Me.MyValue' - but I avoid it to keep my warnings at 0. Did someone else just decide 'Nah, it makes more sense to do it the other way' or is there some technical reason I don't understand?
EDIT: I was thinking of it wrong, more like a 'sub class' in OOP. Even if something is declared in the base class, you access it through the instance you have. But that relationship is not the same with shared or static.
When trying to compile my newly created ClassLibrary class 'Validator' that validates entries made into TextBoxs or MaskedTextBoxs, I get the following error:
Warning 1 Namespace or type specified in the Imports 'System.Windows.Forms' doesn't contain any public member or cannot be found. Make sure the namespace or the type is defined and contains at least one public member. Make sure the imported element name doesn't use any aliases. C:Users erryDocumentsVisual Studio 2008ProjectsMillerClassLibMillerClassLibValidator.vb 1 9 MillerClassLib.
Following is the first part of code in the class:
Imports
System.Windows.Forms Public Class Validator
[code]....
What can I do to resolve this problem? The classes in this class library will be used to validate forms data input in a number of varied projects.
Just asking for personal preferences, pros,cons on the following situation. I have a class(classA) that has some shared members in it. I have a procedure in a form that needs to execute a function in a separate class(classB). This function requires some of the shared member values from classA. I can either pass these values as parameters from the form to classB, or in classB I can just access them directly by referencing classA. As a general rule I've tended to try to use parameters to pass all the information a function needs but it starts to seem a little unwieldly when passing several parameters to multiple procedures.
Ive put in some code to trap a keystroke... In this case, a spacebar.If I call somethingsiple like application.exit(), no problem.I do need to have it call a local public sub though, and when I do so, I get the error: "Reference to non-shared member requires an object reference"I've tried to research this, but what the forums are saying to do is not clear to me yet.[code]The forums are saying to declare the sub as a class and call it as a variable.
I'm attempting to use a function which exists in a class (IDautomation.vb) I found online.I use the "Imports" statement at the top of my class/form. When I attempt to call a function from the Imported class I get an intellisense error:
"Reference to a non-shared member requires an object reference" I guess I thought by using the "Imports" statement I could access any of the properties/methos from that class.
We have a coding standard that says all shared (static) fields and methods must be called with the class name. E.g. NameOfClass.whatever Is there a tool that we can use to check this is in fact the case? (Likewise for modules) I should have make it clearer we are using VB.NET.
I have added a settings file to a project but whenever I reference one of the setting variables I get the following error:
Error 2 Reference to a non-shared member requires an object reference. C:DevelopmentPhoenixAppProcessCreditCardProcessing.vb 67 77 Process
I had to manually add this in a merge conflict and the settings code worked fine in the originating branch. The generated code also seems to be identical from what I can see.
I am accessing the settings using My.Settings.{VarName}
edit: Just tried deleting the settings files. This still happens once the file has been re-generated from the app.config values.
And is this an good example of a member that should be shared? If so does both the Private and the Public need to be shared. I just started using Refactor Pro and it almost always is recommending that I make all members shared. Is there ever a good reason not to do so?
Is it considered an acceptable practice to use Modules instead of Classes with Shared member functions in VB.Net?I tend to avoid Modules, because they feel like left over remains from VB6 and don't really seem to fit in anymore. On the other hand, there doesn't seem to be much difference between using a Module and a Class with only Shared members.
I've got an project that whenever an exception is throw will generate an error log. It was debugging fine so I decided to build a test version to let some co-workers try out. The build didn't work exactly right and I had to alter some reference properties to get it to build. Now I have the following error, "Reference to a non-shared member requires an object reference."The red highlighted text shows "reference to a non-shared member requires an object reference.
I have a bunch of classes that all contain a Shared ReadOnly Dictionary. If I want to access that Dictionary when the class is a generic type (such as when I have a wrapper function that takes T as an interface that all of these classes implement), what's the way to do it?
I want to do something like GetType(T).GetMember("Dict"), but that will return a MemberInfo type, and that cannot be cast to a Dictionary of my defined type(s). For calling functions this way, one can use a delegate + CreateDelegate + GetMethod. But there doesn't seem to be an equivalent Create*for GetMember stuff. Or am I missing something?
If I plug the GetMember call into the immediate window, and then use a subscript as if it is an array, then the debug output says I am getting a Dictionary back. But if I use that same approach in the actual function that I am trying to write, then I get an error about System.Reflection.MemberInfo cannot be converted to Dictionary(X, Y)
I would like to understand the Pro & Cons in using the commonly used methods via Singleton class against Shared (Static) members of a class in VB.Net. It could be in terms Time, Space complexity or best practices. I have a BankAccount class with methods doing some business logic.
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.
I have just received an interesting feedback from a VB.NET customer using our product - for some reason intellisense hidden a certain enumeration value.After a small testing I have found that this is likely a bug in IntelliSense: [URL]..To be honest, I did not expect this problem with such a basic stuff like this. Have you seen this in the past? For me, it doesn't work in all VS versions...
Anyway, feel free to track this issue if you are coding in VB.NET.
Yesterday I started my first DLL project which is for ArabicMessageBox that will allow arabic programmers to display there message in totally Arabic message.My project contain one Form only, and the basic code that I use is:
Public Overridable Function Show(ByVal APrompt As String) As MsgBoxResult mLoad(APrompt, MsgBoxStyle.OkOnly, "") Me.ShowDialog()
I am receiving this error: Reference to a non-shared member requires an object reference on the code I've bolded within the code body. Here is my code:
I get this error:Reference to a non-shared member requires an object reference.When i compile on the following code section:
Private Sub statusBarToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) ToolStripMenuItem.Checked = Not ToolStripMenuItem.Checked statusStrip1.Visible = ToolStripMenuItem.Checked