This session is just not a brain dump of a technical interview on Microsoft technologies. It will be refresher on various pieces of the .NET, Database, OO, Process world. It will serve as a caution for interviewers to red flag their questions which are circulated on the webdom. For all the inquisitive and MCP certified brains, this will serve as a ‘whodunnit’ challenge. It will be a useful reference for the rest of us. The talk is divided into four sections. We will cover the typical BrainBench type questions to start with. Then we will attack the common problems encountered on the field and ideal solution paths to each of them. Third part will be about architectural trade-offs and ‘it depends’ scenarios. Finally, there will be discussion on best practices, books needed for interview preparation and open Q&A among the participants.
This session is just not a brain dump of a technical interview on Microsoft technologies. It will be refresher on various pieces of the .NET, Database, OO, Process world. It will serve as a caution for interviewers to red flag their questions which are circulated on the webdom. For all the inquisitive and MCP certified brains, this will serve as a ‘whodunnit’ challenge. It will be a useful reference for the rest of us. The talk is divided into four sections. We will cover the typical BrainBench type questions to start with. Then we will attack the common problems encountered on the field and ideal solution paths to each of them. Third part will be about architectural trade-offs and ‘it depends’ scenarios. Finally, there will be discussion on best practices, books needed for interview preparation and open Q&A among the participants.
Equality operators == AND != confusing. 2The System.Array type offers several static and instance members. Since all arrays are implicitly derived from System.Array, these members can be used to manipulate arrays of value types or reference types. You'll also note that Array implements several interfaces: ICloneable, IEnumerable, ICollection, and IList. These interfaces allow arrays to be conveniently used in many different scenarios. Figure 2 summarizes the methods offered by System.Array and the interfaces that it implements. Casting Arrays Passing and Returning Arrays Fast Array Access 3. Nullable types are of struct which is a value type stored in stack. 4. Nullable types allow underlying value types.
2. IsGenericTypeDefintion method is used. Calling GetType on a Nullable type causes a boxing operation to be performed when the type is implicitly converted to Object . Therefore GetType always returns a Type object that represents the underlying type, not the Nullable type.
1 Delegates are immutable; once created, the invocation list of a delegate does not change. 2. once the proper catch code fires off, the control is transferred to the finally block (if there are any), and then whatever follows the finally block 3. Finally block that follows a try block will get executed
3. Used to check the run-time type of an object is compatible with a given type.
Tasks in the back ground. Requests are processed asynchronously Returns to queue of waiting threads.
1. are stored in the file. 3. Object that implements ISerializable interface or class decorated with [Serializable] can be serialized.
1. The workaround is to perform a single run-time check before any use of the type, and abort the use immediately, before any damage could take place. You can place the run-time verification in the static constructor.
If the Cli
If a parent class has set “rules” on behavior, than the child must adhere to those “rules” for their behavior as well. Therefore, if the child is filling in for the parent, no behavior would be in violation of the “rules” defined by the parent. This is assuming the child is a good little boy or girl. Now with that picture in your head, let’s go back to our little “Animal Walking” business. Animal is the “parent” class in this example and has set behaviors: Eat(Food), Sleep(Hours) and Walk(Pace). This will mean that all “child” classes will need to implement these behaviors and have an appropriate post condition. As you can see in the example, the Dog is a little more lax in the food department. However, the Cat can only restrict its diet to the IFood interface. Restricting food any further would violate Liskov’s Substitution Principle because it would require the calling class to know about each animal’s behavioral differences. The Cat’s Sleep(Minutes) method is an example of this. The Cat class could not be substituted for the Animal class because it restricts the caller more than expected. Because the Cat class expects minutes (under the hood) instead of hours, the caller will not pass the proper parameters and the system will suffer accordingly. This principle also states that output cannot be restricted any further than the constraints made by the parent class. Therefore, if the output from the Eat() method is a percentage of how hungry the animal remains, then a child could not output the amount of time it took to finish the meal. This would confuse the user and in turn violate LSP. Output must not violate the constraints of the parent and user of the class must not be confused by the output as well.