Possible To Have A Generic Default Property?
Oct 15, 2009I'm attempting the following:
Default Public Property Data(Of dataType)(ByVal key As String) As dataType
Get
Return DirectCast(values.Item(key), dataType)
[code].....
I'm attempting the following:
Default Public Property Data(Of dataType)(ByVal key As String) As dataType
Get
Return DirectCast(values.Item(key), dataType)
[code].....
I'm attempting the following:Default Public Property Data(Of dataType)(ByVal key As String) As dataType
Get
Return DirectCast(values.Item(key), dataType)
End Get
Set(ByVal value As dataType)
values.Item(key) = value
End Set
End Property
[Code]...
It made more sense to make it a property, and it would be the default property of the class. The data type can not be specified on instantiation of the class, because it can contain multiple objects of different data types.
I have relations between two object, but is there a way to load an object when calling a property? I tought about a generic class above a object, where the value is set. On request of the property i can load a value out of the database at that moment.. This
can work i think but the problem is that i must call a sub property of Reference(of TObject) like pObject.Value to access the ObjectB.
So my question is, is there a way to execute code before loading a property (like with a base class or something else) or is it possible to set a default output to ObjectB for Reference(Of ObjectB) so i don`t have to access pObject.Value to walk trought ObjectB?
[Code]....
I believe that the correct way to give a property a default value is to use the Default Attribute on the Property.[code]In the property window, the value that's displayed in a grid's property bag when it's newly dropped onto a form is False, not True. It does recognise that the default value should be True because it shows the value as bolded and then de-bolds it when we manualy set it to true - but it doesn't respect the default as the initial value. Is there any way of getting the property bag to respect the default value?
View 4 RepliesI'd like to do something like this:
Private _myCollection As IList(Of T)
Public Property MyProperty(Of T)() as IList(Of T)
Get
[Code]....
Basically, I want to have a collection of items that may be of any type. Then, I'll be able to do something like this:
Dim myPropertyValue as <the type of some value>
if (MyProperty.Contains(<some value>))
myPropertyValue = CType(MyProperty(<some value>), <the type of some value>)
How can I do this? Or is there a better way than using a generic type?
I'm using VB.NET with .NET 2.0. I have two lists, and I want to compare the lists on a specific property in the object, not the object as a whole, and create a new list that contains objects that are in one list, but not the other.
myList1.Add(New Customer(1,"John","Doe")
myList1.Add(New Customer(2,"Jane","Doe")
myList2.Add(New Customer(1,"","")
Result in the above example would contain one customer, Jane Doe, because the identifier 2 wasn't in the second list.How can you compare these two List<T> or any IEnumerable<T> in .NET 2.0 (lacking LINQ)?
I have a routine that accepts a List of Objects, a property name and a value to search for and simply returns whether or not it found it.The code I have hangs up at the For loop in the findit routine.[code]
View 4 RepliesI need to be able to tell if a property is of type List(of T)but am currently unable to. if i do
TypeOf (UpdateTo.GetType.GetProperty(node.Name)) Is System.Collections.Generic.List(Of Object)
I get the following error
TypeOf (UpdateTo.GetType.GetProperty(node.Name)) Is
System.Collections.Generic.List(Of Object) Expression of type
'System.Reflection.PropertyInfo' can never be of type[code]......
I have several custom classes in a VB.NET (VS2008) project which are related to each other through generic list collections. The lower tier classes refer directly to some of the parent classes (to make it easier to refer backwards up the chain). My question is, is it possible to add the reference to the parent class when the item is added to a collection, when that collection is a property?
Below is some sampling of code to illustrate.
Public Class FlexServer
Private m_FlexLicenses As List(Of FlexLicense)
Private m_Modules As List(Of FlexModule)
Public Property FlexLicenses() As List(Of FlexLicense)
[code] .....
In the code above I have the FlexServer class which refers has two lists as properties, one for FlexLicense and one for Modules. The FlexLicense class has a property to refer back to the FlexServer class that "owns" it. In order to update this property in code, I have to add the FlexLicense to the FlexServer.FlexLicenses list AND set the FlexLicense.FlexServer property. What I am looking for is, is there a way (in the property definition or wherever) to both add the item to the list and alter it at the same time?
For a given class, with a default property of list, you can access an instance object in the list by doing myClass.defProperty("key"). You can also achieve the same results by typing myClass.defProperty!Key.
I have been told that using the parenthesis and quotes is faster for the way the runtime accesses the Property, but I'd like to understand what is the difference and how do each work...
I understand C# has a similar behavior by replacing the parenthesis with square brackets.
Is there anyway to have a class that can return a default type without specifying the property.
If I had a class that had a few properties and one property returned a string value and others returned additional types, could I do the following?
Dim StudentGrade as new StudentGradeClass
'call and get default property
Dim CurrentGrade as string=StudentGrade
'instead of this
Dim CurrentGrade as string=StudentGrade.Current
The reason I am asking this is when I have classes that have other classes as properties and would like to just get a default return value,.
I have a FontFamily property, but I don't know how set the default value:
Public UnitsFontFamilyProperty As DependencyProperty = DependencyProperty.Register("UnitsFontFamily", GetType(FontFamily), GetType(ValueAndUnit), New FrameworkPropertyMetadata(New
[Code]....
I'm converting Visual Basic.Net code to C# in my project. But I have some doubts on how to convert Visual Basic default property to C#. The first option that comes to me are the indexers. Lets imagine the next code in Visual Basic
Public Class MyClass
Dim MyHash as Hashtable
Public sub New()
[Code]....
The following XAML produces an AmbiguousMatchException. The DataContext for myText is a DataTable consisting of > 1 row which contains a DataColumn named "test":
<TextBox Name="myText" Text="{Binding Path=Rows[0].Item[test]}"/>
When I modify the binding path syntax to the below example, the binding works as expected:
<TextBox Name="myText" Text="{Binding Path=Rows[0][test]}"/>
Given that the name of the DataTable is "myData", both of the following lines of code reference the contents of the column "test" on row 0:
myData.Rows(0)("test")
myData.Rows(0).Item("test")
Why doesn't the syntax that explicitly names the Item property appear to work in a binding scenario?
I am inheriting my own DataGridView (say MyDataGridView) from the standard DataGridView control. What I want is that certain properties of MyDataGridView should have a different default value than what its base have. For example, AllowUserToAddRows, AllowUserToDeleteRows, AllowUserToResizeRows properties should have the default values of False; so that when I drag MyDataGridView into a form in the IDE, the default values shown in the properties grid should be False. Later on, if I want to change them to True from the grid, they will be set accordingly.
View 1 RepliesI am new to classes, and I am new to Visual Basic in general, but I am working on a multi class program. The code seems to be correct, but I am trying on instantiate a class oject with the code:
View 3 RepliesI am making a new class that requires a lot of input information. Some of the properties need to be set to a default value, however I do not want to hard code them into the class.
What do you think would be the most efficient way to populate these properties?
I've been thinking of making a new class to hold all the default props and pass them as one object into the new class as a single argument but it seems kind of clunky.
Given a simple class like this:
Public Class clsOB
Implements System.ComponentModel.INotifyPropertyChanged
Private _Frequency As Double
Private _Value As Double
Public Event PropertyChanged(ByVal sender As Object, ByVal e As
[Code] .....
And then I'd like to do something like this:
Dim
o As
New
clsOB(50, 30)
o = 31
What is the difference between these two methods for defining property value defaults? [code] Is there a reason to use one method over the other for defining the default property values in a class?
View 24 RepliesI am getting a strange error when I try to build my solution. The error occurs when I am calling the oGetHeaderValue function and passing the parameters.
Dim oGetHeaderValue As New clsGetHeaderValue
Dim returnString As String
returnString = oGetHeaderValue(strInvoiceNumber, strOrderNumber)
The error message is: Class 'clsGetHeaderValue' cannot be indexed because it has no default property.
I use the following line of code within a single method to explicitly check and trust an SSL cert from the following host: MyTrustedCompany.com:
ServicePointManager.ServerCertificateValidationCallback = Function(obj As [Object], certificate As X509Certificate, chain As X509Chain, errors As SslPolicyErrors) (certificate.Subject.Contains("CN=MyTrustedCompany.com"))
No problem with the code -> works perfectly 100%.
The problem is, it is too far reaching. I thought its scope would only be within the method I decalred it, but apparently it is a Shared property on the 'ServicePointManager' object, and must then persist for the entire application, which I do not want.
The problem is later I am calling web services of mine, etc and getting the "Could not establish a trust relationship..." exception. This is because in the line of code above I check for the host name of an SSL cert specefic to that method. I quickly tested Returning 'True' from the callback so all certs would be trusted instead of checking for a specefic name (i.e. MyTrustedCompany) and subsiquent requests worked. This is how I know this callback assignment reaches father than that single method. Sure I could extend the callback to include all other certitificate names, but what I would rather do is set the 'ServerCertificateValidationCallback' back to its default behavior. Like the pseudo code below:
ServicePointManager.ServerCertificateValidationCallback = Nothing 'Default checking behavior
How do I remove the custom validation and set it back to its default behavior?
I am inheriting my own datagridview (say MyDataGridView) from the standard datagridview control. What I want is that certain properties of MyDataGridView should have a different default value than what its base have. For example, AllowUserToAddRows,
[Code]...
Option Strict Off
Option Explicit On
Module ModGlobal
[Code].....
End ModuleI am getting this warning s when i upgrade from VB 6 to VB.NET .,I am verz new to this Visual Basic .
I need to set the default property of a dotNet Control used by an VB6 Application.
<ComClass(myControl.ClassId, myControl.InterfaceId, myControl.EventsId)> _
<DefaultProperty("NewProperty")> _
Public Class myControl
[code]....
I am newer in VB NET.
VB code:
Public Class InputBox
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a, b, S, p
a = InputBox("Enter length")
b = InputBox("Enter width")
S = a * b
p = a + a + b + b
End Sub
End Class
In InputBox lines i get this error:
Class 'LearningVB.InputBox' cannot be indexed because it has no default property.
I create a class "Planet" that can be inherited. One of the purposes of inheriting is to create a template with different default property values. Eg:
Public Sub New
MyBase.New
MyBase.ForeColor = Red
[code]....
Now, to stop the defaults serializing in the InitializeComponent method, there are 2 ways:If I've implemented the properties using the 'DefaultValue' attribute, and made them overridable, the attribute can be overriden with the new value.The problem with this is, there's no way to just make just the attributes overridable, as opposed to the whole property.I could implement every property with protected Reset'PropertyName' and ShouldSerialize'PropertyName' methods. However, this is a bit of a pain in the arse.Is it, generally, an important consideration to ensure that someone who overrides your base class has the ability to change the default values of a property?
The BackColor of the forms in Visual Studio are a light grey, called Control in the Properties panel. How would I set the BackColor property of a Label to this default color?
View 4 RepliesI am creating a customised version of the ListView control and there are several of the properties that a ListView has that I would like to be set to a different value to the ListView default when a user goes to use my user control.
From what I've found there seems to be a number of people suggesting just set them in the constructor, but to the best of my knowledge that would just mean that the user would not be able to change the properties in the PropertyGrid in the VS IDE.I assume this is probably something extremely simple that I have overlooked.
Am getting: "Structure cannot be indexed because it has no default property". What am I doing wrong?
With grid.Rows(10).Cells
Dim note As New Note With {.ID = "Blah", _
.Date = "1/1/2011", _
.Message = "AAA", _
[code]....
I have been trying to create a custom control based on the ListBox called FileListBox. I followed Microsoft's walkthrough but am having some trouble.
What I want is to add another property to the ListBox called SafeItems which is an ObjectCollection of strings (like the Items property). I will use the Items property to store a collection of Filenames as strings and I would like to store the corresponding SafeFilenames in the SafeItems collection.
This is what I've tried:
FileListBox.Designer.vb
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class FileListBox
Inherits System.Windows.Forms.ListBox
[Code].....