Dot Net Basic
Dot Net Basic
Dot Net Basic
^Back to Top
9. Write a standard lock() plus double check to create a critical section around a variable access. 10. What is FullTrust? Do GACed assemblies have FullTrust? 11. What benefit does your code receive if you decorate it with attributes demanding specific Security permissions? 12. What does this do? gacutil /l | find /i about 13. What does this do? sn -t foo.dll 14. What ports must be open for DCOM over a firewall? What is the purpose of Port 135? 15. Contrast OOP and SOA. What are tenets of each 16. How does the XmlSerializer work? What ACL permissions does a process using it require? 17. Why is catch(Exception) almost always a bad idea? 18. What is the difference between Debug.Write and Trace.Write? When should each be used? 19. What is the difference between a Debug and Release build? Is there a significant speed difference? Why or why not? 20. Does JITting occur per-assembly or per-method? How does this affect the working set? 21. Contrast the use of an abstract base class against an interface? 22. What is the difference between a.Equals(b) and a == b? 23. In the context of a comparison, what is object identity versus object equivalence? 24. How would one do a deep copy in .NET? 25. Explain current thinking around IClonable. 26. What is boxing? 27. Is string a value type or a reference type?
^Back to Top
^Back to Top
1. Is it possible to inline assembly or IL in C# code? - No. 2. Is it possible to have a static indexer in C#? - No. Static indexers are not allowed in C#. 3. If I return out of a try/finally in C#, does the code in the finally-clause run? - Yes.
4. using System; 5. 6. class main 7. { 8. public static void Main() 9. { 10. try 11. { 12. Console.WriteLine(\"In Try block\"); 13. return; 14. } 15. finally 16. { 17. Console.WriteLine(\"In Finally block\"); 18. } 19. }
The code in the finally always runs. If you return out of the try block, or even if you do a goto out of the try, the finally block always runs:
Both In Try block and In Finally block will be displayed. Whether the return is in the try block or after the try-finally block, performance is not affected either way. The compiler treats it as if the return were outside the try block anyway. If its a return without an expression (as it is above), the IL emitted is identical whether the return is inside or outside of the try. If the return has an expression, theres an extra store/load of the value of the expression (since it has to be computed within the try block).
20. I was trying to use an out int parameter in one of my functions. How should I
declare the variable that I am passing to it? - You should declare the variable as an int, but when you pass it in you must specify it as out, like the following: int i; foo(out i); where foo is declared as follows: [return-type] foo(out int o) { } 21. How does one compare strings in C#? - In the past, you had to call .ToString() on the strings when using the == or != operators to compare the strings values. That will still work, but the C# compiler now automatically compares the values instead of the references when the == or != operators are used on string types. If you actually do want to compare references, it can be done as follows: if ((object) str1 == (object) str2) { } Heres an example showing how string compares work:
22. 23. using System; 24. public class StringTest 25. { 26. public static void Main(string[] args) 27. { 28. Object nullObj = null; Object realObj = new StringTest(); 29. int i = 10; 30. Console.WriteLine(\"Null Object is [\" + nullObj + \"]\n\" 31. + \"Real Object is [\" + realObj + \"]\n\" 32. + \"i is [\" + i + \"]\n\"); 33. // Show string equality operators 34. string str1 = \"foo\";
str1 == str2 );
string str2 = \"bar\"; string str3 = \"bar\"; Console.WriteLine(\"{0} == {1} ? {2}\", str1, str2, Console.WriteLine(\"{0} == {1} ? {2}\", str2, str3,
Null Object is [] Real Object is [StringTest] i is [10] foo == bar ? False bar == bar ? True
41. How do you specify a custom attribute for the entire assembly (rather than for a
class)? - Global attributes must appear after any top-level using clauses and before the first type or namespace declarations. An example of this is as follows:
45. How do you mark a method obsolete? [Obsolete] public int Foo() {...}
or
[Obsolete(\"This is a message describing why this method is obsolete\")] public int Foo() {...}
Note: The O in Obsolete is always capitalized.
CriticalSection) in C#? - You want the lock statement, which is the same as Monitor Enter/Exit:
CriticalSection.Exit(obj);
48. How do you directly call a native function exported from a DLL? - Heres a quick
49. 50. using System.Runtime.InteropServices; \ 51. class C 52. { 53. [DllImport(\"user32.dll\")] 54. public static extern int MessageBoxA(int h, string m, string c, int type); 55. public static int Main() 56. { 57. return MessageBoxA(0, \"Hello World!\", \"Caption\", 0); 58. } 59. }
This example shows the minimum requirements for declaring a C# method that is implemented in a native DLL. The method C.MessageBoxA() is declared with the static and external modifiers, and has the DllImport attribute, which tells the compiler that the implementation comes from the user32.dll, using the default name of MessageBoxA. For more information, look at the Platform Invoke tutorial in the documentation. example of the DllImport attribute in action:
60. How do I simulate optional parameters to COM calls? - You must use the Missing class
and pass Missing.Value (in System.Reflection) for any values that have optional parameters. ^Back to Top
2) Which of these string definitions will prevent escaping on backslashes in C#? 1. 2. 3. 4. string s = #.n Test string.; string s = ..n Test string.; string s = @.n Test string.; string s = .n Test string.;
3) Which of these statements correctly declares a two-dimensional array in C#? 1. int[,] myArray; 2. int[][] myArray; 3. int[2] myArray;
4.
System.Array[2] myArray;
4) If a method is marked as protected internal who can access it? 1. 2. 3. 4. Classes that are both in the same assembly and derived from the declaring class. Only methods that are in the same class as the method in question. Internal methods can be only be called using reflection. Classes within the same assembly, and classes derived from the declaring class.
5) What is boxing? a) Encapsulating an object in a value type. b) Encapsulating a copy of an object in a value type. c) Encapsulating a value type in an object. d) Encapsulating a copy of a value type in an object. 6) What compiler switch creates an xml file from the xml comments in the files in an assembly? 1. 2. 3. 4. /text /doc /xml /help
7) What is a satellite Assembly? 1. 2. 3. 4. A peripheral assembly designed to monitor permissions requests from an application. Any DLL file used by an EXE file. An assembly containing localized resources for another assembly. An assembly designed to alter the appearance or .skin. of an application.
8) What is a delegate? 1. 2. 3. 4. A strongly typed function pointer. A light weight thread or process that can call a single method. A reference to an object in a different process. An inter-process message channel.
9) How does assembly versioning in .NET prevent DLL Hell? 1. The runtime checks to see that only one version of an assembly is on the machine at any one time. 2. .NET allows assemblies to specify the name AND the version of any assemblies they need to run. 3. The compiler offers compile time checking for backward compatibility. 4. It doesn.t. 10) Which .Gang of Four. design pattern is shown below? public class A {
private A instance; private A() { } public static A Instance { get { if ( A == null ) A = new A(); return instance; } } } 1. 2. 3. 4. Factory Abstract Factory Singleton Builder
11) In the NUnit test framework, which attribute must adorn a test class in order for it to be picked up by the NUnit GUI? 1. 2. 3. 4. TestAttribute TestClassAttribute TestFixtureAttribute NUnitTestClassAttribute
12) Which of the following operations can you NOT perform on an ADO.NET DataSet? 1. 2. 3. 4. A DataSet can be synchronised with the database. A DataSet can be synchronised with a RecordSet. A DataSet can be converted to XML. You can infer the schema from a DataSet.
13) In Object Oriented Programming, how would you describe encapsulation? 1. 2. 3. 4. The conversion of one type of object to another. The runtime resolution of method calls. The exposition of data. The separation of interface and implementation.
^Back to Top
1. What do you know about .NET assemblies? Assemblies are the smallest units of versioning 2. 3. 4.
and deployment in the .NET application. Assemblies are also the building blocks for programs such as Web services, Windows services, serviced components, and .NET remoting applications. Whats the difference between private and shared assembly? Private assembly is used inside an application only and does not have to be identified by a strong name. Shared assembly can be used by multiple applications and has to have a strong name. Whats a strong name? A strong name includes the name of the assembly, version number, culture identity, and a public key token. How can you tell the application to look for assemblies at the locations other than its own install? Use the directive in the XML .config file for a given application.
<probing privatePath=c:\mylibs; bin\debug /> should do the trick. Or you can add additional search paths in the Properties box of the deployed application.
5. How can you debug failed assembly binds? Use the Assembly Binding Log Viewer
(fuslogvw.exe) to find out the paths searched.
6. Where are shared assemblies stored? Global assembly cache. 7. How can you create a strong name for a .NET assembly? With the help of Strong Name
tool (sn.exe).
9. Can you have two files with the same file name in GAC? Yes, remember that GAC is a
very special folder, and while normally you would not be able to place two files with the same name into a Windows folder, GAC differentiates by version number as well, so its possible for MyApp.dll and MyApp.dll to co-exist in GAC if the first one is version 1.0.0.0 and the second one is 1.1.0.0. 10. So lets say I have an application that uses MyApp.dll assembly, version 1.0.0.0. There is a security bug in that assembly, and I publish the patch, issuing it under name MyApp.dll 1.1.0.0. How do I tell the client applications that are already installed to start using this new MyApp.dll? Use publisher policy. To configure a publisher policy, use the publisher policy configuration file, which uses a format similar app .config file. But unlike the app .config file, a publisher policy file needs to be compiled into an assembly and placed in the GAC. 11. What is delay signing? Delay signing allows you to place a shared assembly in the GAC by signing the assembly with just the public key. This allows the assembly to be signed with the private key at a later stage, when the development process is complete and the component or assembly is ready to be deployed. This process enables developers to work with shared assemblies as if they were strongly named, and it secures the private key of the signature from being accessed at different stages of development.
Browse .NET jobs Browse telecommute .NET jobs Get .NET jobs by email