Thursday, March 17, 2016

C# Upwork Test Answer 2016

1. Which of the following define the rules for .NET Languages?
Answers:
  1. GAC
  2. CLS
  3. CLI
  4. CTS
  5. CLR
  6. JIT
2. What is the syntax required to load and use a normal unmanaged windows DLL (e.g. kernel32.DLL) in a managed .NET C# code?
Answers:
  1. Assembly.Load(”Kernel32.DLL”)
  2. LoadLibrary(”Kernel32.DLL”)
  3. [DllImport(”kernel32”, SetLastError=true)]
  4. Unmanaged DLLs cannot be used in a managed .NET application.
3. Suppose there is a List of type Person with a property of LastName(string) and PopulateList is a function which returns a Generic List of type Person:
List<Person> people = PopulateList();
What does the statement below do?
people.Sort((x, y) => string.Compare(x.LastName, y.LastName));
Answers:
  1. It will return a newly created sorted List.
  2. It will throw a compiler error.
  3. It will sort the string in place.
  4. It will throw InvalidOperationException at runtime.
4. Which of the following will correctly remove duplicates from a List<T>?
Answers:
  1. Int32 index = 0; while (index < list.Count + 1) { if (list[index] == list[index + 1]) list.RemoveAt(index); else index–; }
  2. List<T> withDupes = LoadSomeData(); List<T> noDupes = new List<T>(new HashSet<T>(withDupes)); withDupes.AddRange(noDupes);
  3. List<T> withDupes = LoadSomeData(); List<T> noDupes = withDupes.Distinct().ToList();
  4. List<T> withDupes = LoadSomeData(); var hs = new HashSet<T>(withDupes); withDupes.All( x => hs.Add(x) );
5. Is it possible to define custom Exception classes in C#?
Answers:
  1. Yes
  2. Yes, but they have to be derived from System.Exception class
  3. Yes, but they have to be derived from System.Object class
  4. No
6. Which type of class members are associated with the class itself rather than the objects of the class?
Answers:
  1. Public
  2. Protected
  3. Private
  4. Static
7. What is the output of the following code?
class Test
{
static void Main() {
string myString = “1 2 3 4 5”
myString = Regex.Replace(myString, @”s+”, ” “);
System.Console.WriteLine(myString);
}
Answers:
  1. 12345
  2. 1 2 3 4 5
  3. 54321
  4. 5 4 3 2 1
8. Which of the following will block the current thread for a specified number of milliseconds?
Answers:
  1. System.Threading.Thread.Sleep(50);
  2. System.Threading.Thread.SpinWait(50);
  3. System.Threading.Thread.Yield();
  4. None of these.
9. What is the problem with the following function, which is supposed to convert a Stream into byte array?
public static byte[] ReadFully(Stream input)
{
using (MemoryStream ms = new MemoryStream())
{
input.CopyTo(ms);
return ms.ToArray();
}
}
Answers:
  1. It will work only in .NET Framework 4 or above, as the CopyTo function of the memory stream is available only in .NET Framework 4 or later versions.
  2. It will work only in .NET Framework 3.5 or below, as the CopyTo function of the memory stream is available only in .NET Framework 3.5 or earlier versions.
  3. It will work in all versions of the .NET framework.
  4. None of these.
10. Which of the following functions are used to wait for a thread to terminate?
Answers:
  1. Wait()
  2. Terminate()
  3. Join()
  4. Abort()
11. _____________ helped overcome the DLL conflict faced by the C# language versions prior to .NET.
Answers:
  1. CLR
  2. JIT
  3. CTS
  4. GAC
  5. Satellite Assemblies
  6. All of these
12. What is the benefit of using a finally{} block with a try-catch statement in C#?
Answers:
  1. The finally block is always executed before the thread is aborted.
  2. The finally block is never executed before the thread is aborted.
  3. The finally block is never executed after the thread is aborted.
  4. The finally block is always executed before the thread is started.
13. In which of the following namespaces is the Assembly class defined?
Answers:
  1. System.Assembly
  2. System.Reflection
  3. System.Collections
  4. System.Object
14. Which of the following statements is true regarding predicate delegates in C#?
Answers:
  1. Predicate delegates are used for filtering arrays.
  2. Predicate delegates are references to functions that return true or false.
  3. Predicate delegates are only used in System.Array and System.Collections.Generic.List classes.
  4. Predicate delegates are only used in ConvertAll and ForEach methods.
15. Working with a list of Employees:
List<Employee> lstEmployees = new List<Employee>
{
new Employee{Name=”Harry”,Age=15},
new Employee{Name=”Peter”,Age=22},
new Employee{Name=”John”,Age=45},
new Employee{Name=”Harry”,Age=15},
new Employee{Name=”Peter”,Age=22},
new Employee{Name=”John”,Age=45},
};
It is required to filter out employees having distinct names.
Which one of the following options cannot be used?
Answers:
  1. public class Employee { public int Age { get; set; } public string Name { get; set; } public override bool Equals(object obj) { return this.Name.Equals(((Employee)obj).Name); } public override int GetHashCode() { return this.Name.GetHashCode(); } } List<Employee> distinctEmployeesByName = lstEmployees.Distinct().ToList();
  2. public class Employee { public int Age { get; set; } public string Name { get; set; } } public class EmployeeEquityComparable : IEqualityComparer<Employee> { #region IEqualityComparer<Employee> Members public bool Equals(Employee x, Employee y) { return x.Name.Equals(y.Name); } public int GetHashCode(Employee obj) { return obj.Name.GetHashCode(); } #endregion } List<Employee> distinctEmployeesByName = lstEmployees.Distinct(new EmployeeEquityComparable()).ToList();
  3. public class Employee:IEqualityComparer<Employee> { public int Age { get; set; } public string Name { get; set; } #region IEqualityComparer<Employee> Members public bool Equals(Employee x, Employee y) { return x.Name.Equals(y.Name); } public int GetHashCode(Employee obj) { return obj.Name.GetHashCode(); } #endregion } List<Employee> distinctEmployeesByName = lstEmployees.Distinct().ToList();
  4. public class Employee { public int Age { get; set; } public string Name { get; set; } } List<Employee> distinctEmployeesByName = (from emp in lstEmployees group emp by emp.Name into gemp select gemp.First()).ToList();
16. What are the benefits of using the ExpandoObject class over a using dictionary?
Answers:
  1. It offers easier data binding from XAML.
  2. It’s interoperable with dynamic languages, which will be expecting DLR properties rather than dictionary entries.
  3. WPF data binding will understand dynamic properties, so WPF controls can bind to an ExpandoObject more readily than a dictionary.
  4. ExpandoObject can help in creating complex hierarchical objects. ExpandoObject implements the INotifyPropertyChanged interface, which gives more control over properties than a dictionary.
17. What will be the output of the following Main program in a C# console application (Assume required namespaces are included):
static void Main(string[] args)
{
int @int = 15;
Console.WriteLine(@int);
Console.ReadLine();
}
Answers:
  1. 15
  2. It will throw a compilation error.
  3. It will throw an error at runtime.
  4. @15
18. What is the purpose of the catch block in the following code?
try {
// Code that might throw exceptions of different types
}
catch {
// Code goes here
}
Answers:
  1. Only errors of type std::unexpected are caught here.
  2. Other code exceptions are caught.
  3. This catch block must be the first one in a series of catch blocks that may or may not be followed.
  4. This catch block can be the last one in a series of catch blocks to handle any exception which is not handled by the preceding catch blocks, each of which handles an exception of a particular type.
  5. No errors are caught in this try block (they are all passed to the next closest catch).
  6. None of these.
19. Which of the following is true about friend functions in C#?
Answers:
  1. Friend functions violate the concept of OOPS.
  2. Friend functions should not be used.
  3. Friend functions enhance the concept of OOPS if used properly.
  4. Friend functions are not available in C#.
20. Which of the following statements is true about the code below?
string[] lines = theText.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
Answers:
  1. It splits the string variable on a system line break.
  2. It splits the string variable on a ‘rn’ line break.
  3. It splits the string variable on a system line break, while preserving the empty lines.
  4. It splits the string variable on a system line break, while removing the empty lines.
21. Consider the following code:
string s1 = “Old Value”;
string s2 = s1;
s1 = “New Value”;
Console.WriteLine(s2);
What will be the output printed, and why?
Answers:
  1. “New Value”, because string is a reference type.
  2. “Old Value”, because string is a value type.
  3. “New Value”, because string is a value type.
  4. “Old Value”, because string is a reference type.
  5. “Old Value”, because string is a reference type which is treated as a special case by the assignment operator.
22. What will be the output if in a WinForms application, the following code is executed in the Load event of a form? Assume this form has lblMessage as a Label Control.
private void Form1_Load(object sender, EventArgs e)
{
try
{
ThreadPool.QueueUserWorkItem(ShowMessage,null);
}
catch (Exception ex)
{
}
}
private void ShowMessage(object obj)
{
try
{
lblMessage.Text = “Hello from Thread Pool”;
}
catch (Exception ex)
{
}
}
Answers:
  1. lblMessage.Text will be set to “Hello from Thread Pool”.
  2. An InvalidOperationException will be thrown for the function ShowMessage as the UI can be updated only from the UI thread.
  3. Behavior will vary depending on the form loaded.
  4. None of these.
23. What are Satellite assemblies in C# .NET?
Answers:
  1. Additional assemblies that are used only by the main C# application
  2. User control assemblies used by the C# application
  3. Assemblies that contain only resource information and no code
  4. Assemblies that contain only code and no resource information
24. Where does a C# assembly store the information regarding the other external dependencies, such as satellite assemblies, global assemblies etc, and their versions so that they can be loaded correctly when the assembly is executed?
Answers:
  1. In the embedded resources of the assembly
  2. In the manifest of the assembly
  3. In the MSIL of the assembly
  4. In the Windows registry database
  5. None of these
25. Which of the following will output the string below?
“ttttt”
Answers:
  1. private string Tabs(uint numTabs) { IEnumerable<string> tabs = Enumerable.Repeat(“t”, numTabs); return (numTabs > 0) ? tabs.Aggregate((sum, next) => sum + next) : “”; }
  2. private string Tabs(uint numTabs) { StringBuilder sb = new StringBuilder(); for (uint i = 0; i <= numTabs; i++) { sb.Append(“t”); } return sb.ToString(); }
  3. private string Tabs(uint numTabs) { string output = “”; for (uint i = 0; i <= numTabs; i++) { output += ‘t’; } return output; }
  4. private string Tabs(uint numTabs) { String output = new String(‘t’, numTabs); return output; }
26. Complete the following sentence:
In C#, exception handling should be used…
Answers:
  1. to handle the occurrence of unusual or unanticipated program events
  2. to redirect the programs normal flow of control
  3. in cases of potential logic or user input errors
  4. in case of overflow of an array boundary
27. The global assembly cache:
Answers:
  1. Can store two DLL files with the same name
  2. Can store two DLL files with the same name, but different versions
  3. Can store two DLL files with the same name and same version
  4. Cannot store DLL files with the same name
28. Which statements will give the path where the executing assembly is currently located?
Answers:
  1. System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
  2. System.Reflection.Assembly.GetExecutingAssembly().Location;
  3. AppDomain.CurrentDomain.BaseDirectory;
  4. None of these
29. In C#, can global functions that are not associated with a particular class be defined?
Answers:
  1. Yes
  2. Yes, but they have to be marked with the keyword static.
  3. Yes, but they have to be marked with the keyword internal.
  4. No
30. Which of the following code snippets will call a generic method when the type parameter is not known at compile time?
Answers:
  1. var name = InvokeMemberName.Create; Impromptu.InvokeMemberAction(this, name(“GenericMethod”, new[]{myType}));
  2. MethodInfo method = typeof(Sample).GetMethod(“GenericMethod”); MethodInfo generic = method.MakeGenericMethod(myType); generic.Invoke(this, null);
  3. Action<> GenMethod = GenericMethod< myType >; MethodInfo method = this.GetType().GetMethod(GenMethod.Method.Name); MethodInfo generic = method.MakeGenericMethod(myType); generic.Invoke(this, null);
  4. Action<> GenMethod = GenericMethod< myType >; MethodInfo method = this.GetType().GetMethod(“GenericMethod”); MethodInfo generic = method.MakeGenericMethod(myType); generic.Invoke(this, null);
31. Which of the following is true for CLR?
Answers:
  1. It is an interoperation between managed code, COM objects, and pre-existing DLL’s (unmanaged code and data).
  2. It is a software Output Unit of Deployment and a unit of versioning that contains MSIL code.
  3. It is the primary building block of a .NET Framework application and a collection of functionality that is built, versioned, and deployed as a single implementation unit.
  4. All of these.
32. In the sample code given below, which of the data members are accessible from class Y?
class X {
private int i;
protected float f;
public char c;
}
class Y : X { }
Answers:
  1. c
  2. f
  3. i
  4. All of these
33. If i == 0, why is (i += i++) == 0 in C#?
Answers:
  1. //source code i += i++; //abstract syntax tree += / i i (post) ++
  2. // source code i += i++; //abstract syntax tree += / i ++ (post) i First, i++ returns 0. Then i is incremented by 1. Lastly i is set to the initial value of i which is 0 plus the value i++ returned, which is zero too. 0 + 0 = 0.
  3. int i = 0; i = i + i; i + 1;
  4. int ++(ref int i) { int c = i; i = i + i; return c;}
34. Performance-wise, which of the following is the most efficient way to calculate the sum of integers stored in an object array?
Answers:
  1. int FindSum(object[] values) { int sum = 0; foreach (object o in values) { if (o is int) { int x = (int) o; sum += x; } } return sum; }
  2. int FindSum (object[] values) { int sum = 0; foreach (object o in values) { int? x = o as int?; if (x.HasValue) { sum += x.Value; } } return sum; }
  3. int FindSum (object[] values) { int sum = values.OfType<int>().Sum(); return sum; }
  4. int FindSum (object[] values) { int sum = 0; foreach (object o in values) { if (o is int) { int x = Convert.ToInt32(o); sum += x; } } return sum; }
35. Consider the following code block:
public class Person
{
public string GetAge()
{
lock (this)
{
// Code to get Age of this person object.
}
}
}
Which of the following statements is true?
Answers:
  1. lock(this) actually modifies the object passed as a parameter, and in some way makes it read-only or inaccessible.
  2. lock(this) can be problematic if the instance can be accessed publicly, because code beyond one’s control may lock on the object as well. This could create deadlock situations where two or more threads wait for the release of the same object.
  3. lock(this) marks current object as a critical section by obtaining the mutual-exclusion lock for a given object, all private fields of the object become read-only.
  4. Implement locking using current application instance or some private variable is absolutely the same and does not produce any synchronization issue, either technique can be used interchangeably.
36. The ___________ namespace is not defined in the .NET class library.
Answers:
  1. System
  2. System.CodeDom
  3. System.IO
  4. System.Thread
  5. System.Text
37. Which of the following is true about constructors and member functions?
Answers:
  1. A constructor can return values, but a member function cannot.
  2. A member function can declare and define values, but a constructor cannot.
  3. A member function can return values, but a constructor cannot.
  4. All of these.
38. Which of the following language code is not ‘managed’ by default in .NET framework?
Answers:
  1. Visual Basic
  2. C#
  3. C++
  4. Jscript
39. There is a class that has a public int counter field that is accessed by multiple threads. This int is only incremented or decremented. To increment this field, three thread-safe approaches are mentioned below:
A) lock(this.locker) this.counter++;
B) Interlocked.Increment(ref this.counter);
C) Change the access modifier of counter to public volatile
Which statement is incorrect with regards to these approaches?
Answers:
  1. All 3 are equivalent and can be used interchangeably.
  2. Though A is safe to do, it prevents any other threads from executing any other code which is guarded by locker.
  3. B is the best approach as it effectively does the read, increment, and write in ‘one hit’ which can’t be interrupted.
  4. C on it’s own isn’t actually safe at all. The point of volatile is that multiple threads running on multiple CPU’s can, and will, cache data and re-order instructions.
40. What will happen if the following code is compiled in .NET 4 or above (Assume required namespaces are included)?
public class var { }
public class main
{
public static void main(string[] args)
{
var testVar = new var();
}
}
Answers:
  1. This code will not compile, as var is a reserved keyword, so it can not be used as a class name.
  2. This code will compile, as var is merely a contextual keyword and it is used to provide a specific meaning in the code, so it will cause no problems.
  3. This code will not compile, as a new object cannot be created like var testVar = new var();
  4. None of these.
41. Which object oriented term is related to protecting data from access by unauthorized functions?
Answers:
  1. Inheritance
  2. Data hiding
  3. Polymorphism
  4. Operator overloading
  5. Abstraction
42. One of the ternary operators provided in C# is:
Answers:
  1. *
  2. ::
  3. &
  4. ?:
  5. &lt&lt
43. What type of code is written to avail the services provided by Common Language Runtime?
Answers:
  1. MSIL
  2. Unmanaged code
  3. Managed Code
  4. C#/VB/JS
44. Asynchronous execution is supported in ADO.NET 2.0 for?
Answers:
  1. ExecuteReader
  2. ExecuteScalar
  3. ExecuteNonQuery
  4. All of these
45. The .NET Framework consists of:
Answers:
  1. The Common Language Runtime
  2. A set of class libraries
  3. The Common Language Runtime and a set of class libraries
46. An enum is defined in a program as follows:
[Flags]
public enum Permissions
{
None = 0,
Read = 1,
Write = 2,
Delete = 4
}
What will be the output of the following Main program (which has access to the enum defined above) in this C# console application (Assume required namespaces are included) :
static void Main(string[] args)
{
var permissions = Permissions.Read | Permissions.Write;
if ((permissions & Permissions.Write) == Permissions.Write)
{
Console.WriteLine(“Write”);
}
if ((permissions & Permissions.Delete) == Permissions.Delete)
{
Console.WriteLine(“Delete”);
}
if ((permissions & Permissions.Read) == Permissions.Read)
{
Console.WriteLine(“Read”);
}
Console.ReadLine();
}
Answers:
  1. Write Delete Read
  2. Write Delete
  3. Delete
  4. Write Read
47. Which of the following keywords prevents a class from being overridden further?
Answers:
  1. abstract
  2. sealed
  3. final
    oot
  4. internal
48. Suppose a class is declared as a protected internal:
protected internal class A
{
}
Which statement is correct with regards to its accessibility?
Answers:
  1. This class can be accessed by code in the same assembly, or by any derived class in another assembly.
  2. This class can only be accessed by code which is in the same assembly.
  3. This class can only be accessed by code which is in the derived class (i.e. classes derived from Class A) and which are in the same assembly.
  4. This class can be accessed by any code whether in the same assembly or not.
49. Which of the following is the correct way to randomize a generic list of 75 numbers using C#?
Answers:
  1. Random random = new Random(); List<object> products= GetProducts(); products.OrderBy(product => random.Next(products.Count));
  2. Random random = new Random(); List<object> products= GetProducts(); products.Randomize(product => random.Next(products.Count));
  3. Random random = new Random(); List<object> products= GetProducts(); products.Randomize(products.Count);
  4. Random random = new Random(); List<object> products= GetProducts(); products.Reverse(product => random.Next(products.Count));
50. What will be the value of the result variable after these two statements?
int num1 = 10, num2 = 9;
int result = num1 & num2;
Answers:
  1. 1
  2. 8
  3. 9
  4. 10
  5. 11
  6. 109
51. What is the output of the following code:
class CCheck {
public static void Main() {
string str = @”E:\RIL\test.cs”;
Console.WriteLine(str);
}
}
Answers:
  1. “E:\RIL\test.cs”
  2. E:\RIL\test.cs
  3. “E:RILtest.cs”
  4. The compiler will generate an error saying undefined symbol ‘@’.
52. What is the issue with the following function?
public string GetName(int iValue)
{
string sValue = “0”;
switch (iValue)
{
case 1:
sValue = iValue.ToString();
case 2:
sValue = iValue.ToString();
break;
default:
sValue = “-1”;
break;
}
return sValue;
}
Answers:
  1. The code will not compile as there shouldn’t be a break statement in the default case label.
  2. The code will compile but if case 1 is passed as the input parameter to the function, the code for case 2 will also execute (after the code for case 1), and so the wrong value may be returned.
  3. The code will compile and run without any issues.
  4. The code will not compile as there is no break statement in case 1.
53. What will be the output of the following Main program in a C# console application (Assume required namespaces are included):
static void Main(string[] args)
{
for (int i = 0; i < 1; i++)
{
Console.WriteLine(“No Error”);
}
int A = i;
Console.ReadLine();
}
Answers:
  1. No Error
  2. This program will throw a compilation error, “The name ‘i’ does not exist in the current context”.
  3. The program will compile, but throw an error at runtime.
  4. None of these.
54. What is the difference between int and System.Int32 CLR types?
Answers:
  1. int represents a 16-bit integer while System.Int32 represents a 32-bit integer.
  2. int is just an alias for System.Int32, there is no difference between them.
  3. int represents a 64-bit integer while Int32 represents a 32-bit integer.
  4. None of these.
55. What will be the return value if the function fn is called with a value of 50 for the parameter var?
public int fn(int var)
{
int retvar = var – (var / 10 * 5);
return retvar;
}
Answers:
  1. 50
  2. 25
  3. 49
  4. Error message
  5. None of these
56. Which of the following code snippets converts an IEnumerable<string> into a string containing comma separated values?
Answers:
  1. public static string ConvertToString(IEnumerable<T> source) { return new List<T>(source).ToArray(); }
  2. public static string ConvertToString(IEnumerable<T> source) { return string.Join(“,”,source.ToArray()); }
  3. public static string ConvertToString(IEnumerable<T> source) { return source.ToString(); }
  4. public static string ConvertToString(IEnumerable<T> source) { return string.Join(source.ToArray()); }
57. Which of the following is true regarding a null and an empty collection in C#?
Answers:
  1. An empty collection and a null are both objects.
  2. An empty collection and a null both have the same meaning.
  3. Both an empty collection and a null do not refer to any object.
  4. An empty collection is an object while the null keyword is a literal.
58. Which of the following exceptions cannot be thrown by the Delete() function of the FileInfo class (ie. FileInfo.Delete())?
Answers:
  1. IOException
  2. SecurityException
  3. UnauthorizedAccessException
  4. InvalidOperationException
59. Which of the following statements are true regarding the ref and out parameters in C#?
Answers:
  1. A variable that is passed as an out parameter needs to be initialized, but the method using the out parameter does not need to set it to something.
  2. The out parameter can be used to return the values in the same variable passed as a parameter of the method. Any changes made to the parameter will be reflected in the variable.
  3. The ref keyword can only be used on one method parameter.
  4. The ref parameter is considered initially assigned by the callee. As such, the callee is not required to assign to the ref parameter before use. Ref parameters are passed both into and out of a method.
60. What is the difference between the String and StringBuilder class objects with respect to mutability?
Answers:
  1. String objects are mutable, while StringBuilder objects are immutable.
  2. String objects are immutable, while StringBuilder objects are mutable.
  3. There is no difference between them in this context, as both are immutable.
  4. There is no difference between them in this context, as both are mutable.
61. Which of the following code samples will create a comma separated list from IList<string> or IEnumerable<string>?
Answers:
  1. public static T[] ToArray(IEnumerable<T> source) { return new List<T>(source).ToArray(); } IEnumerable<string> strings = …; string[] array = Helpers.ToArray(strings); string joined = string.Join(“,”, strings.ToArray()); string joined = string.Join(“,”, new List<string>(strings).ToArray());
  2. List<string> ls = new List<string>(); ls.Add(“one”); ls.Add(“two”); string type = string.Join(“,”, ls.ToArray());
  3. string commaSeparatedList = input.Aggregate((a, x) => a + “, ” + x)
  4. public static string Join(this IEnumerable<string> source, string separator) { return string.Join(separator, source); }
62. What is the advantage of using IList<T> over List<T>?
Answers:
  1. IList<T> uses reflection, which is the most efficient way to process an object inside memory.
  2. IList<T> implements hashing to store objects in the collection; which produces optimum performance.
  3. Using IList<T> rather than List<T> allows the code to be more flexible. It can replace the implementation with any collection that implements IList<T> without breaking any calling code.
  4. IList<T> only allows immutable types to be stored inside the collection.
63. How can a single instance application be created in C#?
Answers:
  1. System.Threading.SingleInstance can be used to ensure that only one instance of a program can run at a time.
  2. System.Threading.Mutex can be used to ensure that only one instance of a program can run at a time.
  3. Locks can be used to force a C# application to launch a single instance at a time.
  4. C# applications cannot be restricted to a single instance.
64. Which of the following code samples will execute a command-line program in C# and return its STD OUT results?
Answers:
  1. System.Diagnostics.Process pProcess = new System.Diagnostics.Process(); pProcess.StartInfo.FileName = strCommand; pProcess.StartInfo.Arguments = strCommandParameters; pProcess.StartInfo.UseShellExecute = false; pProcess.StartInfo.RedirectStandardOutput = true; pProcess.Start(); string strOutput = pProcess.StandardOutput.ReadToEnd(); pProcess.WaitForExit();
  2. Process p = new Process(); p.StartInfo.UseShellExecute = true p.StartInfo.RedirectStandardOutput = false p.StartInfo.FileName = “YOURBATCHFILE.bat”; p.Start(); string output = p.StandardOutput.ReadToEnd(); p.WaitForExit();
  3. System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(“program_to_call.exe”); psi.RedirectStandardOutput = true; psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; psi.UseShellExecute = false; System.Diagnostics.Process proc System.Diagnostics.Process.Start(psi);; System.IO.StreamReader myOutput = proc.StandardOutput; proc.WaitForExit(2000); if (proc.HasExited) { string output = myOutput.ReadToEnd(); }
  4. System.Diagnostics.Process pProcess = new System.Diagnostics.Process(); pProcess.StartInfo.FileName = strCommand; pProcess.StartInfo.Arguments = strCommandParameters; pProcess.StartInfo.UseShellExecute = false; pProcess.StartInfo.RedirectStandardOutput = true; pProcess.StartInfo.WorkingDirectory = strWorkingDirectory; pProcess.Start(); string strOutput = pProcess.StandardOutput.ReadToEnd(); pProcess.WaitForExit();
65. What is an Action delegate?
Answers:
  1. An Action is a delegate to a method, that takes zero, one or more input parameters, but does not return anything.
  2. An Action is a delegate to a method, that takes zero, one or more input parameters, but always returns a boolean value.
  3. An Action is a delegate to a method that takes one or more input parameters, but does not return anything.
  4. An Action is a delegate to a method that takes one or more input parameters, but always returns a boolean value.
66. What is the difference between Expression<Func<T>> and Func<T>?
Answers:
  1. There is no difference between the two.
  2. Func<T> denotes a delegate, while Expression<Func<T>> denotes a tree data structure for a lambda expression.
  3. Func<T> denotes a function with parameter of dynamic type, while Expression<Func<T>> denotes a lambda expression.
  4. None of these.
67. Which of the following statements is true about IEnumerable<T>?
Answers:
  1. IEnumerable<T> supports a Size property.
  2. IEnumerable<T> supports a Count() extension.
  3. IEnumerable<T> cannot be casted onto an ICollection<T>.
  4. IEnumerable<T> cannot be casted onto an IList<T>.
68. Which of the following statements is true about the System.Environment.NewLine property?
Answers:
  1. It’s a string containing “n” for non-Unix platforms.
  2. It’s a string containing “n” for Unix platforms.
  3. It’s a string containing “rn” for non-Unix platforms.
  4. It’s a string containing “rn” for Unix platforms.
69. An Interface represents which kind of relationship?
Answers:
  1. IS A
  2. HAS A
  3. CAN DO
  4. None of these
70. Why is it a bad practice to use iteration variables in lambda expressions?
Answers:
  1. Iteration variables can cause problems with accessing a modified closure.
  2. Iteration variables are passed by value, which produces unexpected results.
  3. Iteration variables are passed by reference, which produces unexpected results.
  4. It is perfectly valid to use iteration variables in lambda expressions.
71. Which of the following code samples will check if a file is in use?
Answers:
  1. protected virtual bool IsFileLocked(FileInfo file) { FileStream stream = null; try { stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None); } catch (IOException) { return true; } finally { if (stream != null) stream.Close(); } return false; }
  2. try { using (Stream stream = new FileStream(“MyFilename.txt”, FileMode.Open)) { } } catch { }
  3. internal static bool FileOrDirectoryExists(string name) { return (Directory.Exists(name) || File.Exists(name)) }
  4. FileInfo file = new FileInfo(“file.txt”); if (file.Exists) { // TO DO }
72. Which of the following statements is true regarding the code samples below?
A:
try {
// code goes here
} catch (Exception e) {
throw e;
}
B:
try {
// code goes here
} catch (Exception e) {
throw;
}
Answers:
  1. A will lose the call stack trace information. B will preserve the call stack trace information.
  2. A will preserve the call stack trace information. B will lose the call stack trace information.
  3. Both A and B will preserve the call stack trace information.
  4. Both A and B will lose the call stack trace information.
73. Which of the following is the correct way to implement deep copying of an object in C#?
Answers:
  1. By using the System.Runtime.Serialization.Formatters.Binary.BinaryFormatter class.
  2. By using the System.Reflection.DeepCopy class.
  3. By using the DeepCopy() method of Object class.
  4. By using the MemberwiseClone() method of Object class.
74. What will be the output of the following Main program in a C# console application (Assume required namespaces are included)?
static void Main(string[] args)
{
string Invalid = “$am$it$”;
string sResult = Invalid.Trim(new char[]{‘$’});
Console.WriteLine(sResult);
Console.ReadLine();
}
Answers:
  1. amit
  2. am@am$
  3. $am$it$
  4. am$it
75. Which of the following is the correct way to perform a LINQ query on a DataTable object?
Answers:
  1. var results = from myRow in myDataTable where results.Field(“RowNo”) == 1 select results;
  2. var results = from myRow in myDataTable.AsEnumerable() where myRow.Field(“RowNo”) == 1 select myRow;
  3. var results = from myRow in myDataTable.Rows where myRow.Field<int>(“RowNo”) == 1 select myRow;
  4. var results = from myRow in myDataTable.AsEnumerable() where myRow.Field<int>(“RowNo”) == 1 select new { IID= myRow.Field<int>(“IID”), Date = myRow.Field<DateTime>(“Date”), };
76. What is the purpose of the vshost.exe file in Visual Studio?
Answers:
  1. It is used to improve the performance of the Visual Studio debugger.
  2. It is used to improve the performance of Visual Studio plugins.
  3. It is used to improve the performance of the C# compiler.
  4. It is used to load Visual Studio configuration data.
77. Which of the following code snippets for catch shows a better way of handling an exception?
1.
catch (Exception exc)
{
throw exc;
}
2.
catch (Exception exc)
{
throw;
}
Answers:
  1. 1 is better as it maintains the call stack.
  2. 2 is better as it maintains the call stack.
  3. Both are same.
  4. None of these.
78. What will be the value of result after these two statements?
int num1 = 10, num2 = 9;
int result = num1 ^ num2;
Answers:
  1. 1
  2. 8
  3. 9
  4. 10
  5. 3
  6. 1000000000
  7. 109
79. What will be the output of the following Main program in a C# console application (Assume required namespaces are included)?
static void Main(string[] args)
{
string sPrint = String.Format(“{{ My name is bond. }}”);
Console.WriteLine(sPrint);
Console.ReadLine();
}
Answers:
  1. {{ My name is bond. }}
  2. It will throw a compilation error.
  3. { My name is bond. }
  4. It will throw a runtime error.
80. What is the difference between data types “System.String” and “string” in C#?
Answers:
  1. string is a value type, while System.String is a reference type.
  2. There is no difference,string is just an alias of the System.String data type.
  3. string variable is limited to storing alphabetic characters, while System.String does not have any limit.
  4. None of these.
81. Which of the following is the correct code to close all references to the com objects below?
Workbooks books = excel.WorkBooks;
Workbook book = books[1];
Sheets sheets = book.WorkSheets;
Worksheet ws = sheets[1];
Answers:
  1. Marshal.ReleaseComObject(books);
  2. Marshal.FinalReleaseComObject(books);
  3. Marshal.ReleaseComObject(sheets); Marshal.ReleaseComObject(books);
  4. Marshal.ReleaseComObject(sheet); Marshal.ReleaseComObject(sheets); Marshal.ReleaseComObject(book); Marshal.ReleaseComObject(books);
82. Which of the following is the correct way to sort a C# dictionary by value?
Answers:
  1. List<KeyValuePair<string, string>> myList = aDictionary.ToList(); myList.Sort( delegate(KeyValuePair<string, string> firstPair, KeyValuePair<string, string> nextPair) { return firstPair.Value.CompareTo(nextPair.Value); } );
  2. List<KeyValuePair<string, string>> myList = aDictionary.ToList(); myList.Sort((firstPair,nextPair) => { return firstPair.Value.CompareTo(nextPair.Value); } );
  3. foreach (KeyValuePair<string,int> item in keywordCounts.OrderBy(key=> key.Value)) { // do something with item.Key and item.Value }
  4. var ordered = dict.OrderBy(x => x.Value);

No comments:

Post a Comment