Search Results

Search found 81 results on 4 pages for 'boxing'.

Page 1/4 | 1 2 3 4  | Next Page >

  • Fundamental question about boxing / c#

    - by maxp
    Is it possible to change the value stored inside bar after it has been added? I have tried 'boxing' the string foo but it doesnt work. string foo = "aaaaaaa"; var bar = new System.Web.UI.HtmlControls.HtmlGenericControl("div") { InnerHtml =foo }; foo = "zzzzzz"; plcBody.Controls.Add(bar);//want this to contain 'zzzzzz'

    Read the article

  • Structs, Interfaces and Boxing

    - by Sekhat
    Take this code: interface ISomeInterface { public int SomeProperty { get; } } struct SomeStruct : ISomeInterface { int someValue; public int SomeProperty { get { return someValue; } } public SomeStruct(int value) { someValue = value; } } and then I do this somewhere: ISomeInterface someVariable = new SomeStruct(2); is the SomeStruct boxed in this case?

    Read the article

  • How to efficiently resize an array of values, without boxing, used within a Dictionary<string, float[]>

    - by makerofthings7
    In the code below, Pages is defined as public SortedDictionary<DateTime, float[]> Pages { get; set; } I am trying to dynamically increase the size of this array. Can anyone tell how to increase the sized of the innermost float[]? var tt = currentContainer.Pages[dateTime]; Array.Resize<float>(ref tt, currentContainer.Pages.Count + 1); Fail 1 I tried the following code and get index out of range exception SortedDictionary<DateTime, float[]> Pages = new SortedDictionary<DateTime,float[]>(); float[] xx = new float[1]; xx[0] = 1; DateTime tempTime = DateTime.UtcNow; Pages.Add(tempTime, xx); var tt = Pages[tempTime]; Array.Resize<float>(ref tt, Pages.Count + 1); Pages[tempTime][1] = 2; Fail 2 The following gives a compile time error (property, index, or dynamic member can't be used as a ref value) SortedDictionary<DateTime, float[]> Pages = new SortedDictionary<DateTime,float[]>(); float[] xx = new float[1]; xx[0] = 1; DateTime tempTime = DateTime.UtcNow; Pages.Add(tempTime, xx); var tt = Pages[tempTime]; // The line below is different from Fail 1 above ... compile time error Array.Resize<float>(ref Pages[tempTime], Pages.Count + 1); Pages[tempTime][1] = 2; Question What is the most performant answer to resize this array? Would the answer change if it's likely that the final size will be 100-200 floats or 700-900 floats? What if I change my allocation size from +1 to +128? .. or larger?

    Read the article

  • Puzzlepart Product Boxing Rocks

    - by madsn
    I had a few main drivers for starting the Puzzlepart project in the first place. First; working with great people, secondly having fun at work following the team principles.Third; always challenge with new ways of work. One of the main concepts that has evolved in our team is the concept of "tangible". Anything and everything HAS to be tangible and touchable and we thrive for this in everything that we do. The past two days of workshopping is a great example of this. Andreas had experienced good...(read more)

    Read the article

  • How do I avoid boxing/unboxing when extending System.Object?

    - by Robert H.
    I'm working on an extension method that's only applicable to reference types. I think, however, it's currently boxing and unboxing the the value. How can I avoid this? namespace System { public static class SystemExtensions { public static TResult GetOrDefaultIfNull<T, TResult>(this T obj, Func<T, TResult> getValue, TResult defaultValue) { if (obj == null) return defaultValue; return getValue(obj); } } } Example usage: public class Foo { public int Bar { get; set; } } In some method: Foo aFooObject = new Foo { Bar = 1 }; Foo nullReference = null; Console.WriteLine(aFooObject.GetOrDefaultIfNull((o) => o.Bar, 0)); // results: 1 Console.WriteLine(nullReference.GetOrDefaultIfNull((o) => o.Bar, 0)); // results: 0

    Read the article

  • Pointers to a typed variable in C#: Interfase, Generic, object or Class? (Boxing/Unboxing)

    - by PaulG
    First of all, I apologize if this has been asked a thousand times. I read my C# book, I googled it, but I can't seem to find the answer I am looking for, or I am missing the point big time. I am very confused with the whole boxing/unboxing issue. Say I have fields of different classes, all returning typed variables (e.g. 'double') and I would like to have a variable point to any of these fields. In plain old C I would do something like: double * newVar; newVar = &oldVar; newVar = &anotherVar; ... In C#, it seems I could do an interfase, but would require that all fields be properties and named the same. Breaks apart when one of the properties doesn't have the same name or is not a property. I could also create a generic class returning double, but seems a bit absurd to create a class to represent a 'double', when a 'double' class already exists. If I am not mistaken, it doesn't even need to be generic, could be a simple class returning double. I could create an object and box the typed variable to the newly created object, but then I would have to cast every time I use it. Of course, I always have the unsafe option... but afraid of getting to unknown memory space, divide by zero and bring an end to this world. None of these seem to be the same as the old simple 'double * variable'. Am I missing something here?

    Read the article

  • Auto-(un)boxing fail for compound assignment

    - by polygenelubricants
    Thanks to the implicit casting in compound assignments and increment/decrement operators, the following compiles: byte b = 0; ++b; b++; --b; b--; b += b -= b *= b /= b %= b; b <<= b >>= b >>>= b; b |= b &= b ^= b; And thanks to auto-boxing and auto-unboxing, the following also compiles: Integer ii = 0; ++ii; ii++; --ii; ii--; ii += ii -= ii *= ii /= ii %= ii; ii <<= ii >>= ii >>>= ii; ii |= ii &= ii ^= ii; And yet, the last line in the following snippet gives compile-time error: Byte bb = 0; ++bb; bb++; --bb; bb--; // ... okay so far! bb += bb; // DOESN'T COMPILE!!! // "The operator += is undefined for the argument type(s) Byte, byte" Can anyone help me figure out what's going on here? The byte b version compiles just fine, so shouldn't Byte bb just follow suit and do the appropriate boxing and unboxing as necessary to accommodate?

    Read the article

  • Java ternary operator and boxing Integer/int?

    - by Markus
    I tripped across a really strange NullPointerException the other day caused by an unexpected type-cast in the ternary operator. Given this (useless exemplary) function: Integer getNumber() { return null; } I was expecting the following two code segments to be exactly identical after compilation: Integer number; if (condition) { number = getNumber(); } else { number = 0; } vs. Integer number = (condition) ? getNumber() : 0; . Turns out, if condition is true, the if-statement works fine, while the ternary opration in the second code segment throws a NullPointerException. It seems as though the ternary operation has decided to type-cast both choices to int before auto-boxing the result back into an Integer!?! In fact, if I explicitly cast the 0 to Integer, the exception goes away. In other words: Integer number = (condition) ? getNumber() : 0; is not the same as: Integer number = (condition) ? getNumber() : (Integer) 0; . So, it seems that there is a byte-code difference between the ternary operator and an equivalent if-else-statement (something I didn't expect). Which raises three questions: Why is there a difference? Is this a bug in the ternary implementation or is there a reason for the type cast? Given there is a difference, is the ternary operation more or less performant than an equivalent if-statement (I know, the difference can't be huge, but still)?

    Read the article

  • Performance penalty of typecasting and boxing/unboxing types in C# when storing generic values

    - by kitsune
    I have a set-up similar to WPF's DependencyProperty and DependencyObject system. My properties however are generic. A BucketProperty has a static GlobalIndex (defined in BucketPropertyBase) which tracks all BucketProperties. A Bucket can have many BucketProperties of any type. A Bucket saves and gets the actual values of these BucketProperties... now my question is, how to deal with the storage of these values, and what is the penalty of using a typecasting when retrieving them? I currently use an array of BucketEntries that save the property values as simple objects. Is there any better way of saving and returning these values? Beneath is a simpliefied version: public class BucketProperty<T> : BucketPropertyBase { } public class Bucket { private BucketEntry[] _bucketEntries; public void SaveValue<T>(BucketProperty<T> property, T value) { SaveBucketEntry(property.GlobalIndex, value) } public T GetValue<T>(BucketProperty<T> property) { return (T)FindBucketEntry(property.GlobalIndex).Value; } } public class BucketEntry { private object _value; private uint _index; public BucketEntry(uint globalIndex, object value) { ... } }

    Read the article

  • [Doing it Wrong] Auto Boxing of primitives

    - by Jonathan
    I can't seem to figure out how to get Objective-c to auto box my primitives. I assumed that i would be able to do the following NSString* foo = @"12.5"; NSNumber* bar; bar = [foo floatValue]; However i find that i have used to the more verbose method of NSString* foo = @"12.5"; NSNumber* bar; bar = [NSNumber numberWithFloat:[foo floatValue]]; Am i doing it wrong or is this as good as it gets?

    Read the article

  • Does unboxing just return a pointer to the value within the boxed object on the heap?

    - by Charles
    I this MSDN Magazine article, the author states (emphasis mine): Note that boxing always creates a new object and copies the unboxed value's bits to the object. On the other hand, unboxing simply returns a pointer to the data within a boxed object: no memory copy occurs. However, it is commonly the case that your code will cause the data pointed to by the unboxed reference to be copied anyway. I'm confused by the sentence I've bolded and the sentence that follows it. From everything else I've read, including this MSDN page, I've never before heard that unboxing just returns a pointer to the value on the heap. I was under the impression that unboxing would result in you having a variable containing a copy of the value on the stack, just as you began with. After all, if my variable contains "a pointer to the value on the heap", then I haven't got a value type, I've got a pointer. Can someone explain what this means? Was the author on crack? (There is at least one other glaring error in the article). And if this is true, what are the cases where "your code will cause the data pointed to by the unboxed reference to be copied anyway"? I just noticed that the article is nearly 10 years old, so maybe this is something that changed very early on in the life of .Net.

    Read the article

  • C# Type Conversion

    - by PSU_Kardi
    Hi guys, I have two objects. Object A and Object B. Object A is an instance of a class that was generated from several XSD files. Used xsd.exe /c and compiled them. Now I have my new object. I also have a web service, returning something very similar to object A. So right now I have something along the lines of this: WebService.foo myResponseObj = MyService.GetObject(inData); MyFramework.foo myClientObj = new MyFramework.foo(); What I want to do is this myClientObj = (MyFramework.foo)myResponseObj However, it's not really liking this. Says "Cannot implicitly convert MyFramework.foo[] to WebService.foo[] Any ideas on how to resolve this? The object is quite large and they are basically identical.

    Read the article

  • How to temporarily replace one primitive type with another when compiling to different targets in c#

    - by Keith
    How to easily/quickly replace float's for doubles (for example) for compiling to two different targets using these two particular choices of primitive types? Discussion: I have a large amount of c# code under development that I need to compile to alternatively use float, double or decimals depending on the use case of the target assembly. Using something like “class MYNumber : Double” so that it is only necessary to change one line of code does not work as Double is sealed, and obviously there is no #define in C#. Peppering the code with #if #else statements is also not an option, there is just too much supporting Math operators/related code using these particular primitive types. I am at a loss on how to do this apparently simple task, thanks! Edit: Just a quick comment in relation to boxing mentioned in Kyles reply: Unfortunately I need to avoid boxing, mainly since float's are being chosen when maximum speed is required, and decimals when maximum accuracy is the priority (and taking the 20x+ performance hit is acceptable). Boxing would probably rules out decimals as a valid choice and defeat the purpose somewhat. Edit2: For reference, those suggesting generics as a possible answer to this question note that there are many issues which count generics out (at least for our needs). For an overview and further references see Using generics for calculations

    Read the article

  • Learn to Take a Punch, Learn to Counter, Keep Moving Forward

    - by D'Arcy Lussier
    Originally posted on: http://geekswithblogs.net/dlussier/archive/2013/10/28/154483.aspxDuring a boxing workout a few months ago our trainer had us do something called “breadbaskets”. That’s where you hold your arms up and a partner punches you in your midsection – your breadbasket. I put my arms up, and braced for impact. The trainer came over, saw I was a bit nervous, and coached me through. I can see the fear in your eyes. Don’t be afraid to take the punch. Tighten your core, breathe through the hit. Don’t panic. Over the summer we’d do counter drills as well. This is where a partner throws a punch, you defend but also throw one back – a counter punch. You never just sit back and take a beating, you deflect the blow and come back with one more powerful. These lessons on fighting can apply to all aspects of our lives and any attempts at success that we have. I saw this image recently and agree with it 100%: Success is never a straight forward line. It’s messy, its wrought with failures, its learning over time and applying those life lessons. It’s learning how to take punches and lose your fear, its seeing a punch coming and countering it, but most of all its not giving up and continually moving forward. We do stairs at boxing, which is running up and down three flights of stairs. I’m not anywhere near incredible shape and after doing multiple stairs in a single workout you can feel gassed, tired, even discouraged after hitting the second floor and seeing everyone else running by you. I read a quote from Martin Luther King Jr. that I cling to throughout my day: You want to be successful? Take the punches, but learn how to take them. Counter them. and no matter what, always move forward.

    Read the article

  • How to convert value of Generic Type Argument to a concrete type?

    - by Aleksey Bieneman
    I am trying to convert the value of the generic type parameter T value into integer after making sure that T is in fact integer: public class Test { void DoSomething<T>(T value) { var type = typeof(T); if (type == typeof(int)) { int x = (int)value; // Error 167 Cannot convert type 'T' to 'int' int y = (int)(object)value; // works though boxing and unboxing } } } Although it works through boxing and unboxing, this is an additional performance overhead and i was wandering if there's a way to do it directly. Thank you!

    Read the article

  • Compte-rendu de la journée XP Day Suisse 2010 du 29 mars à Genève, par Bruno Orsier

    Ce lundi 29 mars j'ai eu le plaisir d'assister à la deuxième édition de la conférence XP Day Suisse, qui se tenait à Genève, tout comme l'année dernière (voir le compte-rendu de Pierre Caboche). Cette conférence bénéficie du soutien de plusieurs sponsors, dont developpez.com, et d'une équipe d'organisateurs dynamiques et passionnés. J'ai d'ailleurs trouvé excellente toute l'organisation, que ce soit le choix du lieu, le "time-boxing" (...) Retrouvez le compte-rendu en ligne.

    Read the article

1 2 3 4  | Next Page >