.net - Overriding GetHashCode In VB Without Checked/unchecked Keyword Support?
Jan 11, 2011
So I'm trying to figure out how to correctly override GetHashCode() in VB for a large number of custom objects. A bit of searching leads me to this wonderful answer.Except there's one problem: VB lacks both the checked and unchecked keyword in .NET 4.0. As far as I can tell, anyways. So using Jon Skeet's implementation, I tried creating such an override on a rather simple class that has three main members: Name As String, Value As Int32, and [Type] As System.Type. Thus I come up with:
Public Overrides Function GetHashCode() As Int32
Dim hash As Int32 = 17
[code]....
Problem: Int32 is too small for even a simple object such as this. The particular instance I tested has "Name" as a simple 5-character string, and that hash alone was close enough to Int32's upper limit, that when it tried to calc the second field of the hash (Value), it overflowed. Because I can't find a VB equivalent for granular checked/unchecked support, I can't work around this.
I also do not want to remove Integer overflow checks across the entire project. This thing is maybe....40% complete (I made that up, TBH), and I have a lot more code to write, so I need these overflow checks in place for quite some time.
What would be the "safe" version of Jon's GetHashCode version for VB and Int32? Or, does .NET 4.0 have checked/unchecked in it somewhere that I'm not finding very easily on MSDN?
EDIT:Per the linked SO question, one of the unloved answers at the very bottom provided a quasi-solution. I say quasi because it feels like it's....cheating. Beggars can't be choosers, though, right?
Translated from from C# into a more readable VB and aligned to the object described above (Name, Value, Type), we get:
Public Overrides Function GetHashCode() As Int32
Return New With { _
Key .A = _Name, _
[code]....
This triggers the compiler apparently to "cheat" by generating an anonymous type, which it then compiles outside of the project namespace, presumably with integer overflow checks disabled, and allows the math to take place and simply wrap around when it overflows. It also seems to involve box opcodes, which I know to be performance hits. No unboxing, though.
But this raises an interesting question. Countless times, I've seen it stated here and elsewhere that both VB and C# generate the same IL code. This is clearly not the case 100% of the time...Like the use of C#'s unchecked keyword simply causes a different opcode to get emitted. So why do I continue to see the assumption that both produce the exact same IL keep getting repeated? </rhetorical-question>
Anyways, I'd rather find a solution that can be implemented within each object module. Having to create Anonymous Types for every single one of my objects is going to look messy from an ILDASM perspective. I'm not kidding when I say I have a lot of classes implemented in my project.My final implementation, which fits the constraints of GetHashCode, while still being fast and unique enough for VB is below, derived from the "Rotating Hash" example on this page:
'// The only sane way to do hashing in VB.NET because it lacks the
'// checked/unchecked keywords that C# has.
Public Const HASH_PRIME1 As Int32 = 4
[code]....
I also think the "Shift-Add-XOR" hash may also apply, but I haven't tested it.
View 3 Replies
ADVERTISEMENT
Oct 6, 2011
I have a theoretical class Name_Order, that has a string Name and a int Order. I need to indicate that two Name_Order's are different, if the pair NameOrder is different, that is, or name or order are different. Now, overriding Equals no problemo, but I have some "issues" with GetHashCode:
[Code]...
View 2 Replies
Apr 8, 2010
I have converted the following C# code to VB.NET.But I am unable to find the equivalent of C# "Unchecked" keyword in VB.NET.Below is the C# Code and following the C# Code is converted VB Code.After conversion and building the VB Code I am getting the error :"Constant expression not representable in type 'UInteger'." [code]
View 11 Replies
May 28, 2009
I have this code:
Code:
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckState.Checked Then
AmxModXInstallDir.Enabled = False
Button1.Enabled = False
[code]....
When i check the box, it enables all controls, if i uncheck it, nothing happens.
View 3 Replies
Mar 3, 2012
I want to create a solid checkbox that is checked by default, and is not clickable. If you click it, nothing will happen . how to do this?
View 2 Replies
Apr 28, 2011
from the code below I am trying to find out if checkBox1 is Checked or Unchecked. and then I want my settings to remember if it is checked or unchecked. so when the form is loaded I want my settings to load the last action.... ie checked or unchecked.
so if a user check's the checkbox1 then the message will not show, But if it is unchecked the the messageBox will be shown
Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then
[Code]....
View 7 Replies
Jan 8, 2011
The check box list has an event called "ItemChecked" or something, which triggers when an item is about to change its checked status.
So, it is before the check occurs.I couldn't find an event that occurs after the item has changed.. I want to execute some code only when an item is checked or unchecked.
View 2 Replies
Mar 14, 2009
In Vb.net 2005 how can i trap the checked/unchecked state of a datetimepicker through an event. I'm trying to execute two different methods based on the checked/unchecked state of a datetimepicker when the user clicks the datetimepicker. When the user checks the dtPicker Method A is executed, when the user unchecks it Method B is executed. How can i trap it.
View 1 Replies
May 14, 2012
I have a checkbox list which is filled with entries from my database on page load. I need to update an entry in my database when a item is checked and when an item is unchecked. Right now I am doing the following:
<asp:CheckBoxList id="check1" AutoPostBack="True" TextAlign="Right" OnSelectedIndexChanged="Check" runat="server">
</asp:CheckBoxList>
And the function:
Sub Check(ByVal sender As Object, ByVal e As EventArgs)
Dim sql As String
If check1.SelectedItem.Selected = True Then[code]....
The error is: "Object reference not set to an instance of an object." Is there a better way to check if a list item is checked or unchecked?
View 1 Replies
Jun 3, 2011
I have a Main form, called Main.vb, that is a Parent Form. I have another form called Notes.vb. Inside Main.vb I have a toolstrip with a button on it called Notes. I'm wanting to change the checked status of the Button to either True when the Notes.vb window is open inside the parent or to false when it is close. Is this possible?
View 6 Replies
Mar 14, 2009
How can i trap the checked/unchecked state of a datetimepicker through an event. I'm trying to execute two different methods based on the checked/unchecked state of a datetimepicker when the user clicks the datetimepicker. When the user checks the dtPicker Method A is executed, when the user unchecks it Method B is executed. How can i trap it.
View 6 Replies
Dec 9, 2010
How to count the total no. of asp.net checkboxes, checkboxes checked, no. of checkboxes remain unchecked in webform using vb.net ?I m using Visual studio 2008 with vb as a language ..I my webform i have 10 checkboxes...i wanna count total no. of checkboxes in webform in textboxes1 total no. of checkboxes checked in webform in textbox2 total no. of checkboxes remain unchecked in webform in textbox3?
View 2 Replies
Mar 30, 2012
I have a very old app that uses a little function that calculates a value and after that i get the hash code of that value, that it's used as a password to unlock some functionalities to the user. Now the manager has a 64 bits computer and the function returns a different value. What i need it's how to convert this function from C# to Vb, i know that I can use the converts, but they don't work, pointers. Code: Can I convert this function?
View 1 Replies
Aug 18, 2011
If I simply have this:>>
CODE:
View 13 Replies
Apr 28, 2011
I compiled some VB6 code on my Win7 x64 machine and the result .exe will not run correctly on any other machine. VB6 code is just a new template .exe file with one button, a reference to "Microsoft ActiveX Data Objects 2.6 Library" and the following code in the button press event: Dim db Set db = New ADODB.Connection It runs correctly on my machine, but no others (even other Win7 x64 machines) (Update: I found TWO other users where it runs and one of them is Jeff Atwood!, but most machines have the same problem)
[Code]...
View 2 Replies
Nov 9, 2010
Insert checkbox checked value when checked to textbox as comma seperated string in vb.net or javascript
suppose i have 3 checkboxes and and 1 textboxes in my webpage.aspx
when i checked checkbox1 and checkbox2 then in textbox it will appear as 1,2 only on checkboxes checked event ...
and i want its revert also :
if i set textbox de
View 1 Replies
Sep 22, 2011
my form contains a checked list box [data coming from the database] a combo box [bind to a database table product] and a listview [was previously a listbox]
[Code]...
View 5 Replies
Feb 20, 2010
project im working on for my course,the idea is a photo printing machine that loads up 4 images if usb stick is checked and a different 4 if memory card is checked. and then whatever image is selected appears in the big picturebox on the left [URL] i have 2 print size options set as radiobuttons, radiobutton 1 = 6x4, which costs 25cent per photo, radiobutton 2 = 8x10, and is 50cent per photo.i also have a textbox which will display the number of copies to be printed So here's my dilemma, when the print button is selected alongside one of the radiobuttons i want it to display a message saying something like this "you have selected (whatever the amount of copies)of this photo sized 6x4, or 8x10 depending on which radiobutton is selected, and i want it to display the total cost which is the number of copies multiplied by the rate for the print size selected, then an option saying "Do you wish to proceed" Yes or No.
I did something similar to this in class earlier in the year but cant remember it, it was an airline booking program with 3 types of payment cash, visa or mastercard,upon booking a message popped up saying there is a certain percentage discount for using visa or mastercard
View 5 Replies
May 15, 2010
im making dynamic sql statement rmode is a radio button and tmode is a combo box
[Code]...
View 2 Replies
Jun 6, 2012
I've got a checked listbox on my form which saves the checked items to a spot in my database on the .ItemCheck event.But there's a problem, when I begin checking items, I check the box and click off it, but it doesn't save. (This is if I've only chosen one item)
If I choose two or more items it will save, but unchecking them takes a lot of clicking around to figure it out.Is there a better event that I can use? I've tried the SelectedIndexChanged and that has the same result, there's a lot of clicking around in the checkboxes to end up with the desired selected items, and it does not allow a single item.
View 6 Replies
Apr 30, 2011
In a listview with check boxes, there are two fields being loaded, ID and Lastname. With this information I want to get the ID of the person whose box is checked with this sub:
[Code]....
View 3 Replies
Sep 22, 2009
I trying to get what I think should be a simple thing. I have a checked treeview. I need to get the text of each checked node into a string. For the life of me I can't get it. I am trying to loop thru all the nodes and see if they are checked but I keep getting a "object reference not set to an instance of an object" but I don't know why.
Dim value As String
Dim node As TreeNode
Dim i As Long
[Code]....
View 2 Replies
Mar 8, 2010
I have a project where I want to have checked arithmetic by default, except for one performance sensitive spot. Unfortunately, VB.Net doesn't have an 'unchecked' block.Ideally the framework would have some sort of integer type with explicitly unchecked arithmetic, but I didn't find anything like that. I did find that expression trees have binary expressions for unchecked operations, but the delegate overhead cancels out the unchecked advantage (and then some).
Currently I'm converting the inputs to UInt64/Int64 before doing the arithmetic, then converting back (with a bitwise And to ensure in-range). It's about 50% slower than unchecked arithmetic (according to profiling).
Moving the arithmetic-sensitive part to a project with unchecked arithmetic might work, but it seems like overkill to give it an assembly all to itself.
View 1 Replies
Aug 3, 2011
I have a Four radio button on the form. I want to make them in two groups.Now when i checked anyone the remaining three are unchecked. I want to make two radio buttons in one group and in another group two.Suppose in one group when i check one the other two in second group not unchecked. How i do it?
View 1 Replies
Dec 6, 2009
How do I get all the radiobuttons to be unchecked when program is run? Right now there is always one button that is checked. Using VB2008. [URL]
View 9 Replies
Aug 25, 2010
I have an issue. When I check SelectAllCheckBox all checkbox column in ListView is checked. But when I unchecked one of row checkbox the SelectAllCheckBox is still checked. How to uncheck SelectAllCheckBox if one of row is unchecked? And second question is how highlight ListView rows when SlectAllCheckBox is checked?
[Code]...
View 1 Replies
May 30, 2011
I am using VB Stuido 2008, Net Framework 3.5.I have one Checkbox to Identify the record as Inactive if checked. When I load the form the checkbox is alway unchecked, which is what i want. However, when I go to add a new record the checkbox, not the text for the checkbox is always shaded green, not a checkmark. The checkbox then reacts as if it is checked. This makes it necessary to uncheck the checkbox or else all my record react as if checked.
in the table defintions I have set the default binding value to ((o)) which = unchecked. Iafter setting the default value to ((0)) I deleted the checkbox from my form and then replaced. Not I still get the checkbox shaded which reacts as if Checked.
View 7 Replies
Oct 3, 2010
I have a very stubborn check box . Let me tell you its story :There is Form1 with a button leading to Form2 . On Form2 there is located that stubborn check box I was telling you about . That check box has code in its CheckedChange event and accordingly to its Checked condition , it enables or disables some text boxes .Well , the first time Form2 is shown , that check box works fine : when I check it it enambles the text boxes and when I uncheck it , it disables those text boxes .Then , I press the button to return to Form1 . If needed , the code in the button is :Form1.ShowMe.CloseMy adventure starts when I show again Form2 ... This time the check box is acting weirdly . No matter if I check it or I uncheck it , it always disables the text boxes , as if it is constantly unchecked ! I can see it changing its checked state whenever I click on it , but it always runs the code to disable the text boxes.
I even used some break points in the code and found out that indeed it is the code that disables the text boxes that is called every time , no matter if the check box is checked or unchecked .I don't thing this has anything to do with the fact that this event is called by all the 4 check boxes on the form . After all , it is always the 1st check box that causes the problem (I can see it when moving the cursor over the genericindex variable) .
View 11 Replies
Oct 23, 2009
I am trying to decode yEnc data using the component found here:[URL]...It all converts fine, except for Line 173 of Decoder.cs which contains the c# keyword "unchecked".Without using unchecked I get an OverflowException.What is the correct way to implement this in VB?
[Code]...
View 6 Replies
Feb 15, 2010
Is there a way to translate this code in VB? Most of it is easy, but I can't figure out a way to override the event handler.
public class MTObservableCollection<T> : ObservableCollection<T>
{
public MTObservableCollection()
{
[code]....
View 2 Replies