Get Different Value Type Out Of Concrete Implementation If Only Interface / Abstract Class Is Known?

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


ADVERTISEMENT

Can't Recast Concrete Type As An Interface?

Nov 22, 2011

I am looking to implement the ability to compare and sort classes in my model. All of the objects in my model will need some common functionality regarding to comparisons so I created an abstract BaseComparer that implements IComparer.

Public MustInherit Class BaseComparer(Of T)
Implements IComparer(Of T)
End Class

[code].....

View 2 Replies

Overloading Functions - Overloads In The Abstract Class Implementation ?

Oct 7, 2011

I have recently come across some code that has the following. First there is a Interface with the following function Function Validate() As Boolean. That interface is then implemented in the an 'ABSTRACT' class like this.
Public MustOverride Overloads Function Validate() As Boolean Implements IBusinessEntity.Validate

Question 1: Why use Overloads in the Abstract class implementation.

Question 2: The Abstract class is then inherited into a class (TestClass). In TestClass the Validate function is implemented as follows Public Overloads Overrides Function Validate() As Boolean. I understand the Overrides keyword is to insure that this is the version of the Validate that you want called and not the Abstract class version but why again use the keyword Overloads?

From what I understand you can overload a constructor of a class by simply changing the constructor signature. Also, you overload Methods and Properties of a class by using the Keyword Overloads. But why do it when your implementing an Interface method, or an Abstract Class method that's inherited.

View 2 Replies

Abstract Class Be Better Than An Interface In The Following Case?

Mar 30, 2011

I have one interface that contains four functions. I have about 20 classes that implement this interface. Throughout each class, I see a lot of duplicate code, for example, there are constants declared at the beginning that are in every class. The method implementations (logic) of the interface are mostly the same.It contains duplicate structures. Is this a case where I can eliminate a lot of duplicate classes by implementing an abstract class instead of an interface. What I am striving for is too be able to put common methods from the abstract class as non-abstract methods and then methods that need their own implementation would be marked over-ridable. Can I put consts and structures in abstract classes? If so, that would eliminate a lot of duplicate code across the classes. Is there anything else I should look out for in the classes as a sign that I probably should be use an abstract class instead of an interface.

View 2 Replies

Abstract Class Inside An Interface?

Sep 8, 2011

I'd like to make sure each of the subclasses has a certain nested class whose actual fields are up to the developer.

Nesting an abstract class inside the base abs. class doesn't seem to do the trick because during actual coding, both the nested abs. class and the nested class in the subclass both are available (show up in intellisense).

Having the base class implement an interface that includes a class doesn't work since interfaces only refer to methods that can be implemented, not classes (meaning implementing the interface requires implements methods, but says nothing about classes in the interface.

View 2 Replies

Abstract Class Versus Interface?

Jan 31, 2011

understanding difference between an interface and an abstract class which has no function with implementation?which is better abstract cls or interface in term of speed, features..?

View 11 Replies

Interface Implementation In Partial Class?

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

Interface Implementation - Class Declaration Line

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

Instantiate A Generic Class Using Concrete Object?

Sep 27, 2011

i've got a generic class for xml serialization and deserialization.

Public Class clsXMLHandler(Of T)
Public Sub serializeFromObject(ByVal filePath As String, ByVal [object] As T)
Dim creater As New FileStream(filePath, FileMode.Create)
Dim xml As New XmlSerializer([object].GetType)
xml.Serialize(creater, [object])

[Code]...

View 1 Replies

Call A Member Through Its Parent's Type That Shadowed A Parent Class Implementation?

Aug 3, 2011

This is a challenging one that got me stumped while I was coding today. Suppose I am running the Sub Test1() and Test2() and would like to print out the value of the Shadows method of the instance of the object I am passing in to TestCall() (see below - it is clearer) using the following restrictions:

Can't change the contents of Class A, B, and C
Can't change Sub Test1() and Sub Test2()
TestCall() can't have an if, select case etc. statement that tries to figure out the type

[code].....

View 2 Replies

.net - IBindableComponent Interface Implementation ?

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

.net - Some IBindableComponent Interface Implementation?

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

Interface Implementation Deference?

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

Program To An Interface Instead Of Implementation?

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

Convert Interface Implementation From Program To C#?

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

Explicit Interface Implementation In Program?

Oct 16, 2009

How to implement explicit interface implementation in VB.NET?

View 3 Replies

Inline Documentation For A Interface Implementation?

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

Private And Public Interface Implementation In VB Not In C#

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

Using Dll In C++ - Class Is Abstract?

Jan 6, 2010

I created a vb.net dll which I am using in an unmanaged c++ project.When I try to create an object of the class, I am getting an error:cannot instantiate abstract class.Why would my class be abstract? How can I modify it so that it won't be abstract?

View 1 Replies

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

C# - Navigate To Real Implementation Of Method Behind An Interface?

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

Make A The Implementation Of A Interface Member Internal?

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

IDE :: Interaction Of Finalize And Default Implementation Of IDisposable() Interface?

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

C# - Abstract Class Over Interfaces In ADO.Net Environment

May 13, 2010

I am developing a web app but is not satisfied with is architecture that I am following. The architecture is plain old conventional 3 tier architecture. What i want is follow some design pattern or architecture that will be help me in decoupling my code.I have idea about MVC and MVP architectures for Web App but i need different from that. I want to use OOPS concepts using abstract classes and interfaces, polymorphism etc in my app but not MVC and MVP. I dont know why?

View 2 Replies

C# - Difference Between MustInherit And Abstract Class?

Mar 4, 2011

explain to me the differences between an abstract class and a class marked MustInherit?

Both can implement shared and instance constructors and logic. Both can/must be inherited.

So why use one over the other and what is the difference?

Edit: Sincerely apologize I have got my languages mixed up. Will mark correct answer as soon as I am allowed.

View 2 Replies

Caching Propertyinfo Of Abstract Class?

Jan 19, 2012

I've been playing around with implementing an abstract base class that using reflection accomplishes SQL to Object mapping.

I did some benchmarks and decided I wanted to implement a caching strategy for the property info of the objects (to prevent future lookups on them). My first instinct was to try and implement something like this.

Public MustInherit Class BaseModel
Implements IFillable
Private Shared PropertyCache As List(Of PropertyInfo)

[Code]....

View 1 Replies

Cannot Create Instance Of Abstract Class

Mar 31, 2010

I am trying to compile the following code and i am getting the error[code]...

View 2 Replies

Event Handling An Abstract Class?

Jul 6, 2010

Basically, I have a custom child form class which has events that will be passed to the parent. In the custom child form, I have a declaration of a "MustInherit" class that inherits the DevExpress User Control Class.

The reason for this, is I have many user controls that derive from this base class, and the child form can have an instance of any one of these controls, and doesnt care which. The only requirement is that the child form can handle the same events from each type of control the same way.

Some watered down code snippets(still pretty long unfortunately):
'''Inherited Class
Public Class ChildControlInheritedClass

[Code].....

View 1 Replies

Homework - Net Abstract Class Understanding?

Dec 28, 2011

If i have a class called A and a class called B, if B inherits A that means A is the super class and B is the subclass. I have been asked to describe why class A is not an abstract class but as i see it class A is an abstract class A, as it has been created for Class B to use in the future, is it something to do with Class B not being able to access the fields in Class A as although they are private by default?

[Code]...

View 3 Replies

How To Inherit A Abstract Class In Code Behind

Aug 25, 2009

By Default code behind looks like --
Partial Public
Class InhAbs

[code].....

View 2 Replies







Copyrights 2005-15 www.BigResource.com, All rights reserved