Equals Operator For Interfaces?
Dec 8, 2009
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 Replies
ADVERTISEMENT
May 23, 2012
I 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 Replies
Jan 27, 2010
I am tightening up my coding with the Option Strict set to ON. It has now produced alot of errors. An example of this is:
If AllocatedDGV.Rows(i).Cells("RoomNumber").Value = RoomsAvailableDGV.Rows(j).Cells("RoomName").Value Then
It gives me the following error: Option Strict On disallows operands of type Object for operator '='. Use the 'Is' operator to test for object identity.
View 6 Replies
Apr 6, 2012
I need to write an interface to get data to/from our data files.
We have a low level class that holds field values for each record read from the files.
This just holds two values, the value read from the file (DBValue) and the updated value that may need to be written back to the file (CurrentValue).
These values may be any of the standard value types (integer, date etc) or a string.
Either value (DBValue or CurrentValue) may be null if not defined.
I have written the class to manage this data which works fine while option strict is NOT on.
But we have an office policy of having option strict on all the time.
When I put option strict on, my object value comparisons fail with the error: "Option Strict On disallows operands of type Object for operator '='. Use the 'Is' operator to test for object identity."
Question, how should I change the following code to handle option strict on ...
This is all running on Visual Studio 2010
[Code]...
View 1 Replies
Mar 10, 2009
Possible Duplicate: Is there a conditional ternary operator in VB.NET?
Can we use Coalesce operator(??) and conditional ternary operator(:) in VB.NET as in C#?
View 5 Replies
Aug 26, 2011
I 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
View 1 Replies
Mar 29, 2010
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?
View 39 Replies
Nov 8, 2009
i read it on internet article already, and tested it already. but it didnt show any difference.
View 3 Replies
Feb 6, 2012
In code, why wouldn't this work? intMax = intTopValue = 20
View 2 Replies
Jun 10, 2010
What 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()
View 2 Replies
Oct 11, 2011
Is 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 Replies
Feb 13, 2011
In code, why wouldn't this work?
intMax = intTopValue = 20
View 1 Replies
Aug 5, 2011
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%?
View 2 Replies
Apr 2, 2011
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.
View 9 Replies
Jan 13, 2012
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.
View 1 Replies
Dec 5, 2011
I have a structure written in vb.net with all shared members. I need to override 'Equals', '==' and '!=' to avoid a warning.
View 4 Replies
Oct 27, 2010
I 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 '='
View 4 Replies
Apr 29, 2010
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.
View 4 Replies
Nov 9, 2010
[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 Replies
Aug 3, 2011
I'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 Replies
Nov 11, 2009
I want to perform equality comparison in VB.NET and cannot get it to work. Error: value of type Boolean can not be converted to System.Drawing.PointF
[code]...
View 4 Replies
Mar 5, 2010
Several 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]......
View 2 Replies
Oct 16, 2009
Are Interfaces used often? Need opinions.
View 4 Replies
Mar 16, 2011
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:
View 3 Replies
Mar 13, 2009
I have the following problem with MEF: Interface definition to be used by host:
Public Interface IExecuteDoSomething
Inherits IAddinSettings
Event DataReceived As EventHandler(Of DataReceivedEventArgs)
Function DoSomething() As Boolean
End Interface
[Code]...
Everything seems to work fine until the Button2_Click routine is executed, then an InvalidCastException is thrown with the info:Unable to cast object of type 'System.Collections.Generic.List1[SharedLibrary.IExecuteDoSomething]' to type 'System.Collections.Generic.List1[SharedLibrary.IAddinSettings]'.
How can i solve this problem, because the imported object implements both of the interfaces?
View 1 Replies
Dec 30, 2011
In this discussion let us discuss every usage of interfaces in .NET. Any real time examples and difficulties in using interfaces can also be discussed here.
View 6 Replies
Aug 6, 2009
Im building a game with VB.NET I designed the core of the game in form1 window But now I need menus. How can I implement this without having 5 or so windows that I show() and hide() ? Doing that slows it down a lot and uses lots of memory. I tried tabs, but I don't want the tabs to appear, just switch. Whats the best way to implement multiple interfaces?
View 1 Replies
Jul 14, 2011
Has someone a hint what I'm doing wrong in VB.Net?
Module Module1
Interface ISearch(Of T As ISearchResult)
Function ids() As List(Of T)
End Interface
[CODE]...
The third cast isn't working. Why? did I miss a oop lesson?
View 2 Replies
Sep 12, 2009
What I would like to do is make an abstract class that will hold objects in a dictionary and manage the adding/deleting/key changes of those items in the dictionary. My problem is that in order to make the class as generic as possible I declared the dictionary as dictionary(of long, of SomeInterface).The problem is when I try to pass a strongly typed dictionary in the constructor using dictionary( of long, ClassThatImplementsSomeInterface) I get a compiler error because it cannot convert to that type.
The reason I want to pass the dictionary in the abstract class's constructor is so that I can use the strongly typed dictionary in the subclass and have the abstract class manage the keys when it needs to. So how can I do something like this? Also- If there is a much better way to manage keys than what I am doing feel free to let me know, but I am much more interested in how to make this work since I have encountered this type of problem a few times before.
Here's the abstract class:
Public MustInherit Class HasChildrenKeys
Protected m_childItems As Dictionary(Of Long, IHasKey)
[code].....
View 7 Replies
Oct 20, 2011
I have a solution with multiple projects, some of the projects are written in VB, some in C#. I am wondering if there's a way to use interfaces and/or enums written in VB in C# classes? My C# code below doesn't compile, however I am able to see the interface in intellisense.
[Code]...
P.S It's a console/service application, not ASP.Net (where I know it's doable).UPD: Sorry guys, was missing a reference to the project with the interface. It's fixed now. I think the thing that in VB projects references are done slightly different than in C# confused me.
View 2 Replies