Submitter said questions were asked in a US company hiring a Web developer.
The following set was set in by a reader of the site:
Following are the questions from an interview I attended for in C#, ASP.NET, XML and Sql Server. I will try to add some more as soon as I recollect. Hope these questions will be useful for people attending interviews in this area.
Useful for preparation, but too specific to be used in the interview.
using System;
class main
{
public static void Main()
{
try
{
Console.WriteLine(\"In Try block\");
return;
}
finally
{
Console.WriteLine(\"In Finally block\");
}
}
}
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 it’s 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, there’s an extra store/load of the value of the expression (since it has to be computed within the try block).
using System;
public class StringTest
{
public static void Main(string[] args)
{
Object nullObj = null; Object realObj = new StringTest();
int i = 10;
Console.WriteLine(\"Null Object is [\" + nullObj + \"]\n\"
+ \"Real Object is [\" + realObj + \"]\n\"
+ \"i is [\" + i + \"]\n\");
// Show string equality operators
string str1 = \"foo\";
string str2 = \"bar\";
string str3 = \"bar\";
Console.WriteLine(\"{0} == {1} ? {2}\", str1, str2, str1 == str2 );
Console.WriteLine(\"{0} == {1} ? {2}\", str2, str3, str2 == str3 );
}
}
Output:
Null Object is [] Real Object is [StringTest] i is [10] foo == bar ? False bar == bar ? True
using System;
[assembly : MyAttributeClass] class X {}
Note that in an IDE-created project, by convention, these attributes are placed in AssemblyInfo.cs.
[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.
lock(obj) { // code }
translates to
try {
CriticalSection.Enter(obj);
// code
}
finally
{
CriticalSection.Exit(obj);
}
using System.Runtime.InteropServices; \
class C
{
[DllImport(\"user32.dll\")]
public static extern int MessageBoxA(int h, string m, string c, int type);
public static int Main()
{
return MessageBoxA(0, \"Hello World!\", \"Caption\", 0);
}
}
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. A representative of a high-tech company in United Kingdom sent this in today noting that the list was used for interviewing a C# .NET developer. Any corrections and suggestions would be forwarded to the author. I won’t disclose the name of the company, since as far as I know they might still be using this test for prospective employees. Correct answers are in green color.
1) The C# keyword .int. maps to which .NET type?
System.Int16
System.Int32
System.Int64
System.Int128
2) Which of these string definitions will prevent escaping on backslashes in C#?
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#?
int[,] myArray;
int[][] myArray;
int[2] myArray;
System.Array[2] myArray;
4) If a method is marked as protected internal who can access it?
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?
/text
/doc
/xml
/help
7) What is a satellite Assembly?
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?
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?
The runtime checks to see that only one version of an assembly is on the machine at any one time.
.NET allows assemblies to specify the name AND the version of any assemblies they need to run.
The compiler offers compile time checking for backward compatibility.
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;
}
}
}
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?
TestAttribute
TestClassAttribute
TestFixtureAttribute
NUnitTestClassAttribute
12) Which of the following operations can you NOT perform on an ADO.NET DataSet?
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?
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.
<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.
