Access Of Shared Member - Constant Member - Enum Member Or Nested Type Through An Insta
Aug 13, 2009In Visual Studio 2008, if I do this:
[Code]....
Does anyone here know how to get the above to work WITHOUT warnings being generated?
In Visual Studio 2008, if I do this:
[Code]....
Does anyone here know how to get the above to work WITHOUT warnings being generated?
how do I overcome it? I have created a class and compiled into .dll This code
[Code]...
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
[code]....
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?
Private
Shared img As Bitmap
Me
.img = bgImage
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
[Code]...
I'm wondering if this is possible. In my Test function below I want to
Check if T is of type BaseClass; throw an error if it's not.
Get the value of SomeText property of BaseClass.
Class BaseClass
[code].....
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'm not sure if I'm going mad, it's always a possibility. But is it possible to call a shared member of a class given its 'System.Type' object?
View 4 RepliesI'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
[code]....
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 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
[Code]...
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)
[Code]....
Here's an example of what I'm talking about...
Public Class Sample1
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.
I'm "cloning" objects in my code. For instance: objClone = objOriginal My question is: Does the assignment operator in VB.NET 1.1 do a member-by-member copy of the objOriginal to objClone or does objClone simply point as a reference to memory referenced by objOriginal?
View 3 RepliesI have 2 tables Table A & Table B Table A has the table values that I want to be populated in a datagridview control.The challenge is that column 1 in table A contains an ID(foreign key) to a name field that is a located in table B. I need the datagrid to have the first column be a combobox that displays the names(from Table B) that are already in table A via the ID's, but reference the populating values from Table B. So that when you bring down the combobox you would be choosing from Table B data but populating table A with the ID and you would see a name there instead of an ID.[code] How do I populate my DS dataset with Table B? And how can I create a link to these two tables using a bound datagridview control?
View 1 RepliesI get this error if I follow these steps: Change property Y of an object (an associated entity property)
Attempt to submit changes At this point the value of Y and the value of X (the underlying key) are not in agreement -- LINQ to SQL apparently doesn't synchronize these until GetChangeSet is called.An expected error occurs due to some business logic or database level constraint during the update operation.At this point the value of Y is in agreement with X because GetChangeSet was called.Change the value of Y to Nothing (aka null).Call GetChangeSet.
The error occurs on the last step because the value of X and the original value of X (returned by GetOriginalEntityState) are different, and the new value does not agree with Y? Is that why? Is this a bug in LINQ to SQL. Must be because I don't see the same behavior if I change Y to another (non-null) value instead during step 5. What's the right way around this? I can see a few ways:
Discard the DataContext when an error occurs and leave the UI as-is. I don't like this because then optimistic cocurrency change conflicts cannot be detected. The new context doesn't have the original values in it that were populated at the same time the UI was populated, so if the UI has any stale values in it, they will cause data in the database to revert.Refresh the datacontext (OverwriteCurrent) and leave the UI as-is. I don't like this for the same reason as #1.Refresh the datacontext (OverwriteCurrent) and re-populate the UI. I don't like this because then the error message just presented to the user does not show the user the error they made and allow them to correct it. It also discards all the other changes the user may have made.When the error occurs, explicitly retrieve the key for Y that corresponds to the original value of X and reset Y, then call GetChangeSet to re-synchronize X (X is read-only or private so I can't reset it directly). This seems to work, but seems like a hack, and may require lots of code for other similar errors.
I know I have done this before and as I remember it should be really easy. But for some strange reason I can't do it now and I am about to jump off the building.I will make it simple:Two tables, one is just a list of products and their code.The other table: "details" has a field named product. I want to store only the code there.In the second table's entry form, I am putting a combobox. This combo box should display the list of products, their names, but depending on which one is selected, the code is what is passed to the table "details". Currently If I set the display member to product and the value member to code it still pases the product to the binded data source.
View 3 RepliesI have a database that holds information about a particular job. One of those things is a customerID. CustomerID links to another table containing customer details. I have a combo box attached to a custom object that holds customerID as the valuemember and CustomerName as the displaymember.The JobDetails holds the customerID info. How do I set the default selection in the combobox based on the ValueMember of the combo box?
View 2 RepliesIt's very easy I have the following Enum
Public Enum TCheckStatus
Checked
NotChecked
[code].....
in VB.NET you implement an interface like this...
Sub SomeInterfaceMember()
Implements ISomeInterface.SomeInterfaceMember
End Sub
while in C# you do it explicitly like this (which can only be called via the interface)...
void ISomeInterface.SomeInterfaceMember(){}
or more simply, implicitly like this...void SomeInterfaceMember(){} // Note the name matches the interface member However, regarding VB, I can also do this...
Sub SomeRandomMemberName()
Implements ISomeInterface.SomeInterfaceMember
End Sub
In other words, the method that handles the implementation can have a completely different name than the interface's member name.I'm just wondering if there's something similar to this in C#. (Yes, I know I can simply do an explicit interface, then access it via another 'wrapper' member with a different name that simply delegates to it, but in VB.NET?
I know that the MenuItem class contains an internal class named MenuItemData, which contains itself an internal member named onDrawItem. Given a MenuItem, I want to retrieve the object corresponding to the member onDrawItem. But all I manage to do is to get the FieldInfo, not the object itself.
Here is my code:
Dim obj As Object
Dim fi As FieldInfo
Dim item as System.Windows.Forms.MenuItem
Dim mType As System.Type
[Code] .....
When reaching the last line, I get an error saying something like that (it's traduced):
The field 'onDrawItem' défined in type 'System.Windows.Forms.MenuItem+MenuItemData' is not a field of the target object of type 'System.Windows.Forms.MenuItem. I don't know what object to pass to the GetValue function on the last line. My goal is to remove the base eventHandler of the menuItem, named DrawItem. See this post and the function RemoveClickEventin the accepted answer for a better understanding.
I've created a function that works very well, but it's limited to AD groups direct membership. I would like to display all AD groups a user belongs to, included the nested one.
Here is my
[Code].....
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.
View 9 RepliesIve 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.
View 3 RepliesI'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.
[Code]...
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.
I want to replace the Public Declarations that I currently store in a Module with a Class.Currently in my Module I have a declaration like this:
Public SetPath As String = My.Computer.FileSystem.SpecialDirectories.MyDocuments
How do I get the same functionality from a Class?
Public Class Audits
Private _SetPath As String
Public Property SetPath() As String
[code]....
I know I can reference the SetPath in code by doing a Dim aud as New Audit so my question is this. Where is the correct place to put the
= My.Computer.FileSystem.SpecialDirectories.MyDocuments
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?