Tags:ASP.NET Questions, Dot Net Questions | 127 views
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.
RSS feed for comments on this post · TrackBack URI
Leave a reply