What Is Different Between Equals And Referenceequals
Nov 8, 2009i read it on internet article already, and tested it already. but it didnt show any difference.
View 3 Repliesi read it on internet article already, and tested it already. but it didnt show any difference.
View 3 RepliesI implemented a PagedModel class to wrap around IEnumerable to provide paging data for grids in my MVC app.I used Resharper's auto-generated Equality code telling it to check the data, total rows, page number, and page size fields.[code]I found the call to Equals(other._ModelData, _ModelData) peculiar, as AFAIK, this checks that it is the same object rather than that the contained items are the same. Because my tests were failing anyways, I went ahead and changed it to other._ModelData.Equals(_ModelData) with no success. Then I reflected into it at debug time and found that other._ ModelData.GetType().GetMethod("Equals",{GetType(Object)}).DeclaringType was Object! Obviously, that would result in the failed comparison.I came up with a solution to create a EnumerableEquals method which compares every item in the two enumerables to confirm the are the same, but it seems sloppy. Is there anything I can do to use the normal .Equals method? [code]
View 2 RepliesIs the Is VB.NET keyword the same as Object.ReferenceEquals?
View 1 RepliesI am comapring 2 contract IDs, one is sent by the caller, the other is in a file and read into a variable. I use a string.Equals method to compare the contract IDs. The contract IDs compare successfully if the number in a contract ID is more than 1 away from the the other for example:
CTSRG0006 & CTSRG0005 = false
However
CTSRG0006 & CTSRG0007 = true
the code I am using for the comparison:
If fileContractID.Equals(calledContractID) Then
isFileValid = True
End If
I'm making a sort of VB.NET calculator that has all of the advanced features. I would also like it to have programming-style tips so that I won't have to build in things like ABS and EQUALS.
For example, ABS is sqrt(x ^ 2) and EQUALS is NOT(OZ(x-y)). NOT is 1 - OZ(x).
(x and y are the variables.)
I've come up with a few, but many rely on OZ(). OZ stands for 1/0. I need a formula that will return 1 if the value is <> 0, but 0 if it is equal to 0. I've worked on this for days but I can't come up with anything. Does anyone know how to do this?
In code, why wouldn't this work? intMax = intTopValue = 20
View 2 RepliesWhat is the difference between Equals and = in LINQ?
Dim list As List(Of Foo) = (From a As Foo In FooList _
Join b As Bar In BarList _
On a.Something = b.Something _
Select a).ToList()
versus Dim list As List(Of Foo) = (From a As Foo In FooList _Join b As Bar In BarList _On a.Something Equals b.Something _Select a).ToList()
I have three classes which implement an Interface iComparesWith, and I wish there to be a single function such that each iComparesWith object of any of the three implementing classes should be able to compare itself with any other iComparesWith object, again, of any of the three implementing classes, and know if the two objects are equal. How can I code this so that the comparison code is only written once? Is it the case that I will have to create a top-level MustInherit class which implements the equality comparison, and have MustOverride methods for all of the methods of iComparesWith?
View 1 RepliesIs it the best override for Equals (in VB.NET) for an object having an unique ID? [code]I took that example from the MSDN, but not entirely sure if from all points of view (including performance) is the better solution.[code]
View 2 RepliesIn code, why wouldn't this work?
intMax = intTopValue = 20
I stumbled upon an article regarding the Birthday Paradox and it's implications when overriding the GetHashCode method, I find myself in a bind.In tests, we found that in calls to the ToLookup() Extension, only GetHashcode is used, despite providing the implementation for Equals.
I think I understand why this happens, the internal working of ToLookup, HashSet, Dictionary, etc, use the HashCodes to store and/or index their elements?Is there a way to somehow provide the functionality so that the equality comparison is actual performed using the equals method? Or should I not be concerned with the collisions? I haven't done the maths myself, but according to the first article I linked, you would only need 77,163 elements in a list before reaching a 50% chance of collision.
If I understand this correctly, an Equals() override that compares property by property such as
Return (a.Property1 == b.Property1 && a.Property2 == b.Property2 && ...)
should have a zero chance of collision? So how can I get my ToLookup() to equality compare this way?
In case you need an example of what I mean:
[Code]...
I can get that to work with an override of GetHashcode(), no problems. But I don't want to use GetHashcode because if I have, for example, 109,125 elements in my list, apparently I'm already at 75% chance of collision? If it used aforementioned Equals() override, I think I'd be at 0%?
Well I thought this was going to be easy, then the problem showed up.So I have a structure defined, as follows:
Structure Testing
Dim i as short
Dim j() as short
[code]....
And I need to do the same with all of the T2 array members.Now I get into writing the real code. Something like this:
For i = 1 to 100
Populate portions of T1 'not all values of T1 are used for each value of i
T2(i) = T1
Reset T1 to zero values and empty strings
Next i
So what is going wrong? After I set my T1 components back to zero, my T2(i).j has had all its 1-10 index values set to zero. Note that it is just the array, not the string s or the non-array i.Sure, I could write some code where I set T2(i).i = T1.i, and so on for each variable in the structure. But I have a feeling that is not the right way. There is some kind of equivalence going on between T2(i) and T1 in each loop. And I would would like to understand that more so I know how to really deal with it.
Simple question but it is killing.
How do I write an expression, that return the number of rows where a column is equal something.
I can get the total rows like this: =Count(Fields!Foo.Value) and RowNumber("Rapporter")
But I can't get the number of rows where Foo is equal to someString
Foo is a type string.
I have a structure written in vb.net with all shared members. I need to override 'Equals', '==' and '!=' to avoid a warning.
View 4 RepliesI just ran into what I consider a very strange issue in the execution of some code that I thought I had completely well-understood.
Basically, I was using this kind of notation:
If strOne.equals(strTwo) Then
rather than
If strOne = strTwo Then
I came from a c and java background, and using the '=' operator for comparison has always made me cringe, so I've used the .equals() comparison function thinking that it was equivalent. But just now some of my code broke. It encountered a string containing "Eagle's Nest: Dawn Patrol", used the .equals() to compare it to "Eagle's Nest: Dawn Patrol" and declared them not equal. I changed the code to use '=' rather than '.equals()' and it declared them equal. I also did this:
If strOne.Replace("'", "").Equals(strTwo.Replace("'", "")) Then
And again, it declared them equal.
This has me a little rattled because my code is filled with the use of .equals(), and I've used it assuming that it was no different than writing strOne = strTwo. I've scanned the interweb looking for information about this. I have not found any information about odd interactions between the apostrophe (or other) character(s) and .equals(). Microsoft's documentation does not hint at any subtle differences. how .equals() differs from '='
I am trying to filter a dataset by adding together numbers within a specified field (say field1) within the dataset until i reach a specified number.
The filtered dataset should either be precisley equal to the number or most likley less than. In short if a row exceeds the number it should revert to the previous record.
I have no probs with general filtering and using data adapters to access the data. But im struggerling with the loop side of things.
[code]Where I add my parameter, I am trying to have it pull records that contain the text that is in the jpDescTextBox instead of being exactly equal to it. I have tried using wildcards such as * and %.
View 7 RepliesI've got the hang of using dates now, but I haven't learned how to test multiple results of a query. I can return a value from a query, but I'm unsure how to return many without putting them into a data grid view or an object on the form. (In Visual Basic)I have to check when a particular investment needs to be bought or sold, there will be more than one in almost every case. I've got the function to find out the interval between the months, checking if the asset is bought or sold in month x, but I'm unsure how to test it against multiple assets at once - nor do I know the best way to do so.
View 12 RepliesSeveral of my overriden Equals methods have started throwing Invalid Cast Exceptions -
Unable to cast object of type 'System.DBNull' to type Common.ResolveUser'.
This occurs when binding List (of T) (where T is of type ResolveUser in this case) to a combo.
Equals Method:
Public Overrides Function Equals(ByVal obj As Object) As Boolean
Dim i As ResolveUser = CType(obj, ResolveUser)
If i.UniqueResolveID = UniqueResolveID Then Return True
[Code]......
I am trying to build a program that calculates the minutes worked times pay rate equals amount of weekly pay this is what I got but it doesn't calculate
CODE:
How to make the form size automatic setting the size equals to the screen. or Maximize the whole form including the form components.
View 3 RepliesI want to be able to see if the values a user inputs into 2 textboxs equals the values assigned to a picture. I put these values in the picture's name and tag. Also the picturebox is getting the image from a random function correlating to an imagelist. How would i go about thisI thought of maybe using a checkbox and coding
If picturebox1.image.tag = ("12") _
and textbox1.text = 1 _
and textbox2.text = 2 Then
checkbox1.checked = true
unfortunatly when i debug it says the picturebox1.image.tag = Nothing
when I was a comparitive novice to the novice I am right now, I used to think that these two things were syntactic sugar for each other, ie. that using one over the other was simply a personal preference. Over time, I'm come to find that these two are not the same thing, even in a default implementation (see this and this). To further confuse the matter, each can be overriden/overloaded seperately to have completely different meanings.
View 6 Replies[code] My problem is the CE button and I'm supposed to be able to add 1 + 2+ 3 + 4 + 5 = 15, but when I calculate it only does the 1 + 2 its supposed to reapeat last process each time you hit the equal sign.
View 1 Replieswhy "dec_payment" equals 0? Here is the code...
myVariable.xyx(5, 3, 5000) 'Calling it with this
'in my class form
Public Sub xyx(ByVal interestRate As Double, ByVal years As Double, ByVal loan As Double)
[Code]....
This must've have been asked before but I couldn't locate it. In a mixed code project (VB and C#) we were debugging some old Visual Basic code where a statement as follows could be found:
If Request.Params("xxx") <> "" Then
'do something
I considered this a bug as Request.Params could be null, in which case the statement would've become false which wasn't the idea. So I thought. I just found out, -- probably for the tenth time and I will keep forgetting -- that the following two statements are not equal, while Nothing in VB should be equal to null in C# (thought I):
if(String.Empty == null) // always false
If String.Empty = Nothing Then ' always true
Should I dismiss this as a typical Microsoft backward compatibility effort, or should I consider this a huge error in the VB.NET compiler? Does anybody know the Microsoftean opinion on this oddity?
I want to know what implies to declare a function or a sub using public or directly Sub / Function i.e.:
Public Function Whatever()
' Process
End Function
versus.
Function Whatever()
' Process
End Function