I am using 3rd party library, and there is specificly a method that I want to shim.   public virtual QueueRuntimeInfo GetQueueRuntimeInfoAsync(string queuePath);   This method return QueueRuntimeInfo object. Here is the implementation of that class, which there is no constructor:  public class QueueRuntimeInfo {     internal QueueRuntimeInfo(string path)     {         this.Path = path;     }     public string Path { get; internal set; }     public long MessageCount { get; internal set; } }   Now, I want to shim GetQueueRuntimeInfoAsync method, which return QueueRuntimeInfo object, and then I want to set its property manually in my code.  Here is my shim method:   ShimManagementClient.AllInstances.GetQueueRuntimeInfoAsyncString = (managementClient, queuePath) =&gt;         {             QueueRuntimeInfo queueRuntimeInfo; // what to do?!             return queueRuntimeInfo;         };   I think I can shim get methods of QueueRuntimeInfo class (PathGet and MessageCountGet). But still need to create the object somehow.
79010
Take the following class as an example:  class Sometype {     int someValue;      public Sometype(int someValue)     {         this.someValue = someValue;     } }   I then want to create an instance of this type using reflection:  Type t = typeof(Sometype); object o = Activator.CreateInstance(t);   Normally this will work, however because SomeType has not defined a parameterless constructor, the call to Activator.CreateInstance will throw an exception of type MissingMethodException with the message "No parameterless constructor defined for this object." Is there an alternative way to still create an instance of this type? It'd be kinda sucky to add parameterless constructors to all my classes.
30039
When logging in C#, how can I learn the name of the method that called the current method? I know all about System.Reflection.MethodBase.GetCurrentMethod(), but I want to go one step beneath this in the stack trace. I've considered parsing the stack trace, but I am hoping to find a cleaner more explicit way, something like Assembly.GetCallingAssembly() but for methods.
1825
Occasionally I come across methods with an uncomfortable number of parameters.  More often than not, they seem to be constructors.  It seems like there ought to be a better way, but I can't see what it is.    return new Shniz(foo, bar, baz, quux, fred, wilma, barney, dino, donkey)   I've thought of using structs to represent the list of parameters, but that just seems to shift the problem from one place to another, and create another type in the process.  ShnizArgs args = new ShnizArgs(foo, bar, baz, quux, fred, wilma, barney, dino, donkey) return new Shniz(args);   So that doesn't seem like an improvement.  So what is the best approach?
1064
I know java and would normally put in getter/setter methods. I am interested in doing it in C# with the following code, but it throws a StackOverflow exception. What am I doing wrong?  Calling Code  c.firstName = "a";   Property Code    public String firstName; {     get     {         return firstName;     }     set     {         firstName = value;     } }
35959
I've been programming in C# and Java recently and I am curious where the best place is to initialize my class fields.  Should I do it at declaration?:  public class Dice {     private int topFace = 1;     private Random myRand = new Random();      public void Roll()     {        // ......     } }   or in a constructor?:  public class Dice {     private int topFace;     private Random myRand;      public Dice()     {         topFace = 1;         myRand = new Random();     }      public void Roll()     {         // .....     } }   I'm really curious what some of you veterans think is the best practice. I want to be consistent and stick to one approach.
81444
This came to my mind after I learned the following from :  where T : struct   We, C# developers, all know the basics of C#. I mean declarations, conditionals, loops, operators, etc.  Some of us even mastered the stuff like , , , , ...  But what are the most hidden features or tricks of C# that even C# fans, addicts, experts barely know?  Here are the revealed features so far:    Keywords    by  var by  using() statement by  readonly by  as by  as / is by  as / is (improved) by  default by  global:: by  using() blocks by  volatile by  extern alias by    Attributes    by   by   by   and  by   by   by   by    Syntax    (coalesce nulls) operator by  Number flaggings by  where T:new by  Implicit generics by  One-parameter lambdas by  Auto properties by  Namespace aliases by  Verbatim string literals with @ by  enum values by  @variablenames by  event operators by  Format string brackets by  Property accessor accessibility modifiers by  Conditional (ternary) operator (?:) by  checked and unchecked operators by  implicit and explicit operators by    Language Features   Nullable types by  Anonymous types by  __makeref __reftype __refvalue by  Object initializers by  Format strings by  Extension Methods by  partial methods by  Preprocessor directives by  DEBUG pre-processor directive by  Operator overloading by  Type inferrence by  Boolean operators  by  Pass value-type variable as interface without boxing by  Programmatically determine declared variable type by  Static Constructors by  Easier-on-the-eyes / condensed ORM-mapping using LINQ by  __arglist by    Visual Studio Features   Select block of text in editor by  Snippets by      Framework   TransactionScope by  DependantTransaction by  Nullable&lt;T&gt; by  Mutex by  System.IO.Path by  WeakReference by    Methods and Properties   String.IsNullOrEmpty() method by  List.ForEach() method by  BeginInvoke(), EndInvoke() methods by  Nullable&lt;T&gt;.HasValue and Nullable&lt;T&gt;.Value properties by  GetValueOrDefault method by    Tips &amp; Tricks   Nice method for event handlers by  Uppercase comparisons by  Access anonymous types without reflection by  A quick way to lazily instantiate collection properties by  JavaScript-like anonymous inline-functions by    Other   netmodules by     by     by
77237
I am unable to cover the following class get set method. Need help in creating test class  public class Aresult{      public class Parent {         public String type {get; set;}         public String id {get; set;}         public String sequence_id {get; set;}         public String etag {get; set;}         public String name {get; set;}     } }   Please suggest  @isTest  public class CirriusGetItemsResultTest {     public static void myUnitTest(){         Aresult.parent a = new Aresult.parent();         a.type='hello';         a.id='hello';         a.sequence_id ='hello';         a.etag ='hello';         a.name ='hello';     } }
11253
When you have code like the following:   static T GenericConstruct&lt;T&gt;() where T : new() {     return new T(); }   The C# compiler insists on emitting a call to Activator.CreateInstance, which is considerably slower than a native constructor.   I have the following workaround:  public static class ParameterlessConstructor&lt;T&gt;     where T : new() {     public static T Create()     {         return _func();     }      private static Func&lt;T&gt; CreateFunc()     {         return Expression.Lambda&lt;Func&lt;T&gt;&gt;( Expression.New( typeof( T ) ) ).Compile();     }      private static Func&lt;T&gt; _func = CreateFunc(); }  // Example: // Foo foo = ParameterlessConstructor&lt;Foo&gt;.Create();   But it doesn't make sense to me why this workaround should be necessary.
77562
I want to get the method System.Linq.Queryable.OrderyBy&lt;T, TKey&gt;(the IQueryable&lt;T&gt; source, Expression&lt;Func&lt;T,TKey&gt;&gt; keySelector) method, but I keep coming up with nulls.  var type = typeof(T); var propertyInfo = type.GetProperty(group.PropertyName); var propertyType = propertyInfo.PropertyType;  var sorterType = typeof(Func&lt;,&gt;).MakeGenericType(type, propertyType); var expressionType = typeof(Expression&lt;&gt;).MakeGenericType(sorterType);  var queryType = typeof(IQueryable&lt;T&gt;);  var orderBy = typeof(System.Linq.Queryable).GetMethod("OrderBy", new[] { queryType, expressionType }); /// is always null.   Does anyone have any insight? I would prefer to not loop through the GetMethods result.
32981
Is it possible to instantiate an object at runtime if I only have the DLL name and the class name, without adding a reference to the assembly in the project? The class implements a interface, so once I instantiate the class, I will then cast it to the interface.  Assembly name:     library.dll    Type name:      Company.Project.Classname     EDIT: I dont have the absolute path of the DLL, so Assembly.LoadFile won't work. The DLL might be in the application root, system32, or even loaded in the GAC.
66606
I'm working on a batch which getting a params from another batch in the finish method.  The Params are :    A Map - Map&lt;Sobject,Set&lt;String&gt;&gt; A Set -  Set&lt;String&gt;   I lost the values of my Map on the second run of the execution method - Means - Map.get(Sobject) returned with null although it had values in it.  That happened only within the second to the last run of the batch (from the second till the end of the chunks).  The first chunk getting the values as expected.  I guess it could be because defined a Sobject as a Key in a Map is not Best Practice because Hashing issue - Because the second param that I'm sending to the batch is a Set&lt;String&gt; - And it keeps its values for all the chunks.   Because of this issue, I decided to send a Set&lt;Id&gt; of all the Sobjects from the first batch, and retrieve the records in the second batch with SOQL query. and I wanted to know what are the best practices to do so.  the queryLocatoer in the Start method is needed to go over another Sobject without any related to the Sobject that I sent.  Where can I put this Query? Can I put it inside the Constructor and assign it to a global variable? Inside the Start method before I set the query for the queryLocator? - since it always will be the same results, I don't want to put it on the execute method.  What do you think? Why we have hashing issue when the key of a Map is a Sobject?  Thanks!
1441
Is there anything to use, to determine if a type is actually a anonymous type? For example an interface, etc?  The goal is to create something like the following...  //defined like... public static T Get&lt;T&gt;(this IAnonymous obj, string prop) {     return (T)obj.GetType().GetProperty(prop).GetValue(obj, null); } //...  //And then used like... var something = new { name = "John", age = 25 }; int age = something.Get&lt;int&gt;("age");   Or is that just the beauty of an anonymous type? Nothing to identify it self because it takes a new shape?  Note - I realize that you can write an extension method for the object class, but that seems like a little overkill, in my opinion.
86715
I'm looking at some GXT code for GWT and I ran across this use of Generics that I can't find another example of in the Java tutorials. The class name is  if you want to look at all of the code.  Here are the important parts:  private RpcMap map;  public &lt;X&gt; X get(String property) {   if (allowNestedValues &amp;&amp; NestedModelUtil.isNestedProperty(property)) {     return (X)NestedModelUtil.getNestedValue(this, property);   }   return map == null ? null : (X) map.get(property); }   X is defined nowhere else in the class or anywhere in the hierarchy, and when I hit "go to declaration" in eclipse it just goes to the &lt;X&gt; in the public method signature.  I've tried to call this method with the following two examples to see what happens:  public Date getExpiredate() {     return  get("expiredate"); }  public String getSubject() {     return  get("subject"); }   They compile and show no errors or warnings.  I would think at the very least I would have to do a cast to get this to work.  Does this mean that Generics allow a magic return value that can be anything and will just blow up at runtime?  This seems counter to what generics are supposed to do.  Can anyone explain this to me and possibly give me a link to some documentation that explains this a little better?  I've went through Sun's 23 page pdf on generics and every example of a return value is defined either at the class level or is in one of the parameters passed in.
103112
When and why would somebody do the following:  doSomething( (MyClass) null );   Have you ever done this? Could you please share your experience?
105546
When modelling classes, what is the preferred way of initializing:   Constructors, or Factory Methods   And what would be the considerations for using either of them?  In certain situations, I prefer having a factory method which returns null if the object cannot be constructed. This makes the code neat. I can simply check if the returned value is not null before taking alternative action, in contrast with throwing an exception from the constructor. (I personally don't like exceptions)  Say, I have a constructor on a class which expects an id value. The constructor uses this value to populate the class from the database. In the case where a record with the specified id does not exist, the constructor throws a RecordNotFoundException. In this case I will have to enclose the construction of all such classes within a try..catch block.  In contrast to this I can have a static factory method on those classes which will return null if the record is not found.  Which approach is better in this case, constructor or factory method?
13274
Does anybody have useful example of this assignment inside a C# method? I have been asked for it once during job interview, and I am still interested in answer myself.
121961
I have two classes, Foo and Bar, that have constructors like this:  class Foo {     Foo()     {       // do some stuff     }      Foo(int arg)     {       // do some other stuff     } }  class Bar : Foo {     Bar() : base()     {       // some third thing     } }   Now I want to introduce a constructor for Bar that takes an int, but I want the stuff that happens in Bar() to run as well as the stuff from Foo(int).  Something like this:  Bar(int arg) : Bar(), base(arg) {   // some fourth thing }   Is there any way to do this in C#?  The best I have so far is putting the work done by Bar() into a function, that also gets called by Bar(int), but this is pretty inelegant.