C# - Interface Method Implementation And Passing ByRef?
Jan 9, 2010
I have a C# interface defined as so:
public interface IMenuSecurityService
{
void SetSecurityFlags(List<MenuItem> items);
}
I need to implement this interface in a VB.Net class. When I implement the SetSecurityFlags method with the items parameter passed ByVal, it compiles.
Public Sub SetSecurityFlags(ByVal items As List(Of L1.Common.Model.MenuItem)) Implements IMenuSecurityService.SetSecurityFlags
' do some work
End Sub
When I try to implement it with the items parameter passed ByRef, I get the following compiler error: Class 'UserRights' must implement 'Sub SetSecurityFlags(items As System.Collections.Generic.List(Of Model.MenuItem))' for interface
Public Sub SetSecurityFlags(ByRef items As List(Of L1.Common.Model.MenuItem)) Implements IMenuSecurityService.SetSecurityFlags
' do some work
End Sub
I can't seem to figure this one out. Does VB.Net not support this or am I doing something wrong?
View 1 Replies
ADVERTISEMENT
Jan 11, 2011
In Visual Studio, when you right-click a method call, you go to the implementation of that method inside a class except if you access this method through an interface: in that case you go to the interface method not to the actual implementation.Is there a way / tips (key shortcut or anything) to access this actual implementation ? Otherwise you are stuck to add some comment just to remember where you did implement it that's really not productive and error prone !
Update: interesting answers but I'm not really satisfied because all are cumbersome. I will give a precise example:
IInterface iInterface = someObject;
iInterface.someMethod();
View 6 Replies
Oct 11, 2011
I am trying to develop a .NET class that updates a VB6 Form and its controls with various new captions (It is in an assembly that is COM visible).
I pass a VB6 form ByRef as an object to the .NET class and then update the caption etc on the form as follows:
Public Sub AddFormRefLegacy(ByRef objForm As Object)
Try
objForm.Caption = "some new caption"
[Code].....
View 1 Replies
Jul 23, 2010
I have been working on this for a few days, and I am going around in circles. I can make the program work by including everything in the same sub procedure, but the assignment requires that I do certain tasks by using function procedures.What I need to do is take the contents of a text box, reverse the order of the first and last names, and add them to a list box. I can do that, just not by passing value from a function procedure. Here is my
View 4 Replies
Jan 31, 2012
I am trying to create a Library for like code that we use in more than one application. One call involves an array where I need to create a pointer to the array for what I need.
Is there a way to pass a value ByRef, have it increment, and return the value back to the original call?
View 35 Replies
Jan 19, 2011
I need to implement the IBindableComponent to the the following code:
Public Class InfragisticsToolStripBindableButton
Inherits Infragistics.Win.UltraWinToolbars.ButtonTool
Implements IBindableComponent
[CODE]...
1 problem: Warning: event 'Disposed' conflicts with property 'Disposed' in the base class 'DisposableObject' and should be declared 'Shadows'
2 problem: Error: Class 'InfragisticsToolStripBindableButton' must implement 'Property Site As ISite' for interface 'System.ComponentModel.IComponent'. Implementing property must have matching 'ReadOnly' or 'WriteOnly' specifiers.
Why should I implement "IComponent" if I implement "IBindableComponent"?
3 problem: How should I override "Dispose", if it's already implemented in the base class, but is not virtual apparently.
View 1 Replies
Feb 8, 2011
I need to implement the IBindableComponent to the the following code:
Public Class InfragisticsToolStripBindableButton
Inherits Infragistics.Win.UltraWinToolbars.ButtonTool
Implements IBindableComponent
[code].....
View 2 Replies
May 21, 2010
What is the diference of using interfaces like ...I have an interface
Public Interface IProDataSource
Function read() As Integer
End Interface[co]....de
The only difference I have notice is that if the method is declare private it will be visible using the first approach only.
View 3 Replies
Dec 25, 2009
I have been reading about design patterns and application architecture and im told that I should program to an interface instead of implementation. This i understand. So I figured I would start with something small. Never programmed with an interface before. So I want to create an encryption program that will allow the user to select which method to encrypt it with, AES, DPAPI, etc. I started designing the Interface but I am unsure if I am doing this right. [Code] Also, when it comes to the DPAPI implementation, how is the client supposed to supply the Protection Scope? I didn't think this should be in the interface as it only applys to the DPAPI.
View 1 Replies
Jul 22, 2010
Reading [URL] made me wonder whether the comments in there did apply to Strings in terms of performance. Since strings are copied before being passed, isn't it much more efficient (if the callee doesn't need a copy of string course) to pass strings ByRef?
[Code]...
View 1 Replies
Dec 31, 2009
This is the code:
Public Class userDefClass
private b as integer = 1
End class
Public Class Form1
private SomeClass as new userDefClass
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) [Code]...
View 7 Replies
Sep 14, 2010
In VB6.0, you could create a sub that took an array byref, and then call it with an argument that was an indexed element of the array, and it would treat that index as the starting point. This was very useful, for example, if you were trying to create a binary string to send over a communication port.The same thing doesn't work in VS 2008,Let us say for example I have the following Sub:
Public Sub HexToAddr(ByRef addr() As Byte, ByVal addrstr As String)
Dim i As Integer
For i = 0 To 7[code]....
Is there some tricky way to make this work, or do I really have to either (a) create a completely separate array of bytes, call the function, and then copy the data, or (b) create a completely separate version of HexToAddr which takes an "offset" argument for the destination array?
View 12 Replies
Jun 29, 2009
I create tabpages at runtime each having a flexgrid controls. I need to pass these flexgrids of each tabpage as a parameter to a function byref. This is the code .
[Code]...
View 8 Replies
Jun 6, 2011
I have a function that accepts a String by reference:Function Foo(ByRef input As String)
If I call it like this:
Foo(Nothing)
I want it to do something different than if I call it like this:Dim myString As String = Nothing Foo(myString) Is it possible to detect this difference in the way the method is called in VB .NET?All the logic is in the second overload, but I want to perform a different branch of logic if Nothing was passed into the function than if a variable containing Nothing was passed in.
View 3 Replies
Dec 22, 2010
I have some code that is transforming the coordinates of a line.I want to keep the original coords and I thought passing the line ByVal would be the best way.The original VB6 code used a temporary variable so that the original coords were not updated.I'm confused as when the X & y coords of 'line' are changed 'MyLine' is also changed. I had assumed only 'line' would change and 'MyLine' would remain unchanged'.
Private Sub TransformSaveLine(ByVal MyLine As LineType)
Dim P As Integer
Dim line As LineType
Dim x As Double
[code].....
View 12 Replies
Sep 11, 2010
This may seem like an obvious answer, but I can't seem to find an answer. I have this code in VB.NET[code]...
The problem with this is that in C#, it would seem you have to name the function the same as the interface function you are implementing. How can I call this method EncryptionVB instead of Encryption, but still implement the Encryption property?
View 5 Replies
Oct 16, 2009
How to implement explicit interface implementation in VB.NET?
View 3 Replies
Jul 14, 2010
Is there any way to include some kind of auto-generated comments as part of implementing an interface? Studio automatically fills the headers for the methods, can I auto-fill some sort of code comments at that same time? (to help remember what each interface method is supposed to do without looking at external documentation.) For example, if I could get the interface's XML Intellisense markup headers to copy from the interface down to the implementation's level.
View 3 Replies
Jul 16, 2009
I am reading a book (ASP.NET 3.5 Enterprise Application Development with Visual Studio 2008: Problem Design Solution, WROX)The source code is written in C#, but I am a VB guy, so I am giving it a try. Somewhere in the 2nd chapter, there is a Linq to Sql file used that is generated by drag&dropping the DB tables from the Database Explorer. Because some tables have the same type of fields, there is an interface generated called IENTBaseEntity. The writer says its a good practice to implement this interface in another partial class (not the designer.vb file!). The reason for this is that when the LinqToSql file is modified (and regenerated) the changes wont be lost.
In C# this solution is easy to do (i think), but in VB.Net I get an error, because the concerning properties in the LinqToSql file do not append the 'Implement IENTBaseEntity.Property' line. When I press [Enter] after the interface implementation line, VS generates other properties like this
Partial Public Class ENTUserAccount
Implements IENTBaseEntity '--->This line results in the error
' This is not the way it should be
Public Property InsertDate1() As Date Implements IENTBaseEntity.InsertDate
Get
End Get
[code]....
View 5 Replies
Oct 27, 2009
Private Sub ActivateMe(ByVal active As Boolean) Implements IGraphicControl .ActivateMe compiles.How is possible in VB.NET? A private method can be an interface implementation. VB.NET... a lot of compliments to this language and IDE..
View 6 Replies
Jul 5, 2010
In the code below, when I use the same interface with O in the Class declaration line and the Inherits line, I then get a compiler error when I access the interfaces Year member in both the properties. It says " 'Year' is not a member of 'IRegionYear'." I get the same thing if I use the same class with each Of.
I don't get this error when the interface or class entered for both Of clauses are different.
Interface IRegionYear
ReadOnly Property Year() As Integer
End Interface
MustInherit Class RegionYears(Of IRegionYear)
[Code] ......
View 4 Replies
Sep 12, 2009
I have a public interface. i have class that implements the interface, how do i make the implementation of interface members internal or private in the implementation class? If i declare an interface internal, how to implement that in an public class?
View 2 Replies
Feb 28, 2011
I am creating an xlsx reader / writer for my application (based on OpenXML SDK 2.0). I want to read xlsx files and store the data contained in each row in a DTO/PONO. Further I want to read the xlsx file and then modify it and save it.Now my problem is not with the OpenXML SDK, I can do what I need to do.My problem is on how to structure my components. Specifically I have problems with the polymorphism at the lowest level of a Spreadsheet, the cell.A cell in Excel/OpenXML can have different types of data associated with it. Like a Time, Date, Number, Text or Formula. These different type need to be handled differently when read/written from/to a spreadsheet.I decided to have a common interface for all subtypes like TextCell, NumberCell, DateCell etc.Now when I read the cell from the spreadsheet the Method/Factory can decide which type of cell to create.
Now because the cell is an abstract from the real implementation it does not know / does not need to know of what type it is. For writing / modifying the cell I solve this problem by calling .write(ICellWriter) on the cell I want to persist. As the cell itself knows what type of data it contains, it knows which method of ICellWriter it needs to call (static polymorpism).Writing to the xlsx file is no problem. My problem is, how do I get the data out of my cell into my DTO/PONO without resorting to type checking -> If TypeOf variable is ClassX then doesomething End If. As Methods / Properties have to have different Signatures and differentiating by only using a different return type is not allowed.The holder (collection, in this case a row of a table/spreadsheet) of the objects (refering to the cells) does not know the concrete implementations. So for writing a cell I pass it a Cellwriter. This Cellwriter has overloaded methods like Write(num as Integer), Write(text as String), Write(datum as Date). The cell object that gets this passed to it then calls the Write() method with the data type it holds. This works, as no return value is passed back.After some thinking about the problem I came to realize that it's not possible without reflection or knowledge of what type of cell I am expecting. Basically I was trying to recreate a spreadsheet or something with similar functionality and way too abstract/configurable for my needs.
View 1 Replies
Apr 20, 2009
I am comparing an alternative Dispose pattern to VS2005's default implementation. In doing the comparison I have found several uncertainties with the default pattern which have raised a handful of questions related to sub-class implementations and object Finalization.
[Code]...
View 1 Replies
Apr 3, 2009
Using VB.NET, is there a way to pass a reference argument when invoking a function in a dll.
Suppose I want to pass arg2 as a reference argument, how would I do that?
method.Invoke(obj, New [Object]() {arg1, arg2, arg3})
In other words I want to point arg2 to something else within the invoked function.
View 2 Replies
Mar 1, 2010
Switching Byref to Byval on method calls I have many warnings raised due to: "Implicit conversion from xxxx to yyyy in copying the value of 'ByRef' parameter zzzz back to the matching argument."
My feeling is that it would be safe to change the function parameters from byref to byval as nothing special is being done with the reference type pointers inside these methods the reference types are simply being used and I think the behaviour would be exactly the same if running with a copy a pointer rather than the original.
Another consideration is that I have two classes which inherit from a base class. The same situation is occuring in that the byref params are causing implicit casting from the base class to the narrower concrete class. Again I can't see any problems with this code running byval either.Does anyone have any tips regarding use of parameters in functions when dealing with reference types?
Some of the other things that are currently being passed around byref in my project are database connection objects i.e. OracleConnection and SqlConnection. Is there any good reason for passing these around byref?
[Code]...
View 1 Replies
May 22, 2009
I have a COM component that I want to call using late-binding from VB.NET (using Primary Interop Assembly - PIA method). My IDL signature for the COM method looks like:
HRESULT Send([in]BSTR bstrRequestData,
[out]VARIANT *pvbstrResponseData,
[out]VARIANT *pvnExtCompCode,
[out,retval]int *pnCompletionCode);
So 2 'ByRef' parameters in VB.NET lingo, and a return value. I attempt to invoke this method like so:
Dim parameters(2) As Object
parameters(0) = "data"
parameters(1) = New Object()
parameters(2) = New Object()
Dim p As New ParameterModifier(3)
[Code] .....
This fails spectactularly with an exception: {"Invalid callee. (Exception from HRESULT: 0x80020010 (DISP_E_BADCALLEE))"}
I assume this means I'm doing something wrong in my parameterMods array. Because if I comment out setting any value of the ParameterMods array to 'True' - it works. It of course doesnt update the parameters that are [out] parameters and so it's not working as intended. Is there something else to consider since the method also has a return value? The MSDN example pretty much does exactly what I am doing, with the exception that example did not have a return value.
View 1 Replies
Sep 27, 2010
I have code, shown below, that works all except for 1 thing: The variables being passed byRef get passed, but once modified in the else section of the "if me.invokerequired" code of RecordData, the variables are never updated in the calling function. To reiterate, the calling function does not receive the updated data that is in the variables custid and amt.When debugging, I see the data change in the else section of "if me.invokerequired", but once it returns from the callback the data is missing.[code]
View 15 Replies
Dec 8, 2009
I am making use of a 3rd party dll and am encountering some strange behavior in VB, which doesn't occur in C# Perhaps someone can explain what is going on. Anyhow, I am making use of a method in this 3rd party library which accepts an array parameter ByRef. The end result is the variable should remain null after the method call, but it is returning initialized for some reason.
[Code]...
View 2 Replies
Mar 18, 2010
So I've been doing some research on the singleton factory design pattern, and I am wondering if my example implementation is correct (warning I did get carried away creating animals):
[Code]...
View 6 Replies