Extend Primitive Types Such As System.String And System.Int32?
Jul 25, 2010
Is it possible to extend primitive types such as System.String and System.Int32 (IE: integer) in .Net 4 and if so how?
To be more specific, I am aware of the concept of partial classes but this doesnt seem to be the answer. Also I find that System.String is not inheritable and Int32 is a structure.
Lastly I am interested in knowing both a VB.Net and C# answer to the above question.
I wrote the code below which calculates the length of a line on the form and save record. An error occurs when the programme tries to save the record. It gives me "Cannot perform '=' operation on System.Int32 and System.String" error. I checked the data type of "ID"(int), "Microscope"(Varchar), "Magnification"(int) and "Calibration"(Decimal), and they are fine so far as I know.
Code: Private Sub btnEnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnd.Click 'Check if the length textbox is not empty
For this code, I'm trying to have it pull the ID of the doctor from the database and only show their patients. I keep getting this error when I try selecting one from the list though, right at the red section.
I get an error "Cannot perform '=' operation on System.String and System.Int32" on the following code:
VB.Net Code:
Public Sub board2_OnGameWon(ByVal sender As Object, ByVal e As EventArgs) If Not board2.isCheated() Then Dim time As Integer = board2.getGameTime()' I have tried changing this to String
[code]....
The exception is in the lines where I 'Dim betterScores' above. The idea is that when the player wins a game their score is placed and held in the betterScore variable. It is then written to an xml file later on.
I have a Difficulty Menu item (System.Windows.Forms ToolStripMenuItem) containing 4 choices, 3 of them work but one doesn't. The one that doesn't work is "1.0 (Normal)" and in the Sub New is "adjustDifficulty(mnuDifficulty100)"I have copied some other subs that are associated with this code below.
VB.Net Code:
Public Sub New() ' This call is required by the Windows Form Designer. InitializeComponent()
I'm getting a sporadic 'Unable to cast object of type 'System.Int32' to type 'System.String' Exceptions at .SingleorDefault() in the below code. It works 9/10 times but randomly it throws an exception. I made sure that SettingID that i'm passing has no Null Values and the data in the table always exists for the settingID, and i'm always passing SettingID as Integer.
Im working on my first n-tier application. I am trying to serialize a structure and Im getting an error"Soap Serializer does not support serializing Generic Types : System.Nullable`1[System.DateTime]."Here is the structure that is being serialized Namespace Structures
<Serializable()> _ Public Structure structAllergy Public AllergyID As String Public ProfileID As String
[code]....
The bold line is the line that is throwing the error.
I'm not sure if i titled this question properly or am asking it properly, but here goes.I've got serialized objects (in XML) stored in a database, along with a string/varchar indicating the type.
with this code dont know wht its not working source = wc.DownloadString(String.Format("http://" & cboHSearch & "/cse?cx=013269018370076798483:gg7jrrhpsy4&cof=FORID:1&q=" + cboEngine.Text + "&sa=Search", Me.cboEngine.Text.Replace(" "c, "+"c), resultCounter))
I am getting the following erro message: "Unable to cast object of type 'System.String' to type 'System.Predicate`1[System.String]'." on the line of code: If Not StrgFrag.Exists(wrd) Then I was expecting a True/False response and assumed it would work given that wrd is a String variables and StrgFrag in a List(of String). Do I need to reference the wrd variable differently? Dim StrgFrag As New List(Of String)
This has got to be one of the most frustrating issues with asp.net. I first got the error parser error cannot load default and as I have done before checked if the naming was correct in th bin folder and made the changes accordingly. Now I get the following error:
somethiing._DEfault is not allowed here because it does not extend class 'System.Web.UI.Page'
where something is the name of the project in the properties. I have the following code in Default:
Namespace FormDiscovery Partial Class _Default Inherits System.Web.UI.Page Shared settings As New System.Configuration.AppSettingsReader
[Code].....
Now I have deleted the project and other in the solution and created a new one and still this error and if I take the 'something' name away I get the cannot load default error.
I'm passing a type name and some parameters from C# code into a navigation framework written in VB. The navigation framework looks for a constructor on the type that matches the parameters passed in using Type.GetConstructor(Types()). The constructor that I'm looking for expects an array of integers Integer() in vb. But it gets an array of System.Int32. I've gone so far as to try this:
[Code]...
And the VB code still sees System.Int32 on the other end, which means that it doesn't find the constructor.
I'm writing a .NET CF (VBNET 2008 3.5 SP1) application, which has one master form, and it dynamically loads specific UserControls based on menu click, in a sort of framework idea. There are certain methods and properties these controls all need to work within the app. Right now I am doing this as an Interface, but this is aggravating as all get up, because some of the methods are optional, and yet I MUST implement them by the nature of interfaces.
To be able to sort a dictionary by value I'm using this code:
Dim idCurrentJobs As IDictionary(Of String, Int32) = New Dictionary(Of String, Int32) 'The string in the dictionary represents a jobname and the integer is a counter for how many jobs im currently are running in the application' idCurrentJobs.Add("JobName1", 2)
I have tried several ways but can not make this work. We are using .NET 2.0
vb If DataGridView1.Columns(e.ColumnIndex).ValueType = GetType(String) Then 'this did not work either: ElseIf DataGridView1.Columns(e.ColumnIndex).ValueType = GetType(DateTime)
[code]....
Quote:
Error15Operator '=' is not defined for types 'System.Type' and 'System.Type'.
during some code conversion from another persons VB.net project to C#, i have come across the following code:
[Code]...
Now m trying to convert this to C#, but im a little confused as to exactly the meaning of this line:
If lbytRelayStateMask And (2 ^ lintCounter) Then It appears there something going on behind the scenes (that ill have to examine further) however before i do i would just like to clarify the result of this if statement. Am i correct in saying if either one of the sub-expressions equals zero then its false, otherwise its true? Sorry, im not too up to speed on VB.net.
Is there any class or specific method for getting non-primitive types in an assembly? FieldInfo.Gettype() will do for primtive types but what about non-primitive types?
Here is the code I am working with, everything works fine up until last line then i get evaluate exception unhandled "Cannot perform '=' operation on System.Int32 and System.String." My eyes are going blind trying to figure out whats wrong, if I understand correctly it cant count system string and REO is a string value.
The thing i have done this before ,count that is. I know you cant average strings and some other function but i have been able to count.
d Dim comm As New OleDb.OleDbCommand("Select * From " & Me.OpenFileDialog1.SafeFileName & " Where Status <> 'S'", con) Dim dalist As New OleDbDataAdapter(comm) Dim comm1 As New OleDbCommand("SELECT * FROM " & Me.OpenFileDialog1.SafeFileName & " Where Status
addressing the need for getting the bytes of an object. But I am wondering if there is an approach to calling BitConverter.GetBytes on a generic type where I know the type is a primitive (Int32, UInt16, etc).
Public Sub Foobar(Of T as Structure)() Dim x as T 'Assume T is declared as Int32 Dim y() as Byte y = System.BitConverter.GetBytes(x) End Sub
The above will throw your usual error:
Overload resolution failed because no accessible 'GetBytes' can be called with these arguments: 'Public Shared Function GetBytes(value As Double) As Byte()': Value of type 'T' cannot be converted to 'Double'. 'Public Shared Function GetBytes(value As Single) As Byte()': Value of type 'T' cannot be converted to 'Single'.
[code]....
One solution I think would work is a large Select Case calling GetType(), but that is horrendously slow (because of boxing) and looks ugly. I would think that since I call my higher level class with a primitive data type for T, that the compiler would be smart enough to figure it out, but I assume I am not providing enough information for it to derive what T's underlying value is at compile time for the invoked instances.