.Net to Print
-
Upload
shrinidhi-gowda -
Category
Documents
-
view
224 -
download
0
Transcript of .Net to Print
-
8/3/2019 .Net to Print
1/12
Basic Input & output with the Console Class:Many of the example applications make use of the System.Console class. Console is one
ofmany types defined in the System namespace. As its name implies, this class encapsulates
input, output, and error stream manipulations. Thus, this type is mostly useful when creating
console-based applications rather than Windows based or Web-based applications.
Principal among the methods of System.Console are Read( ), ReadLine( ) Write( ) and
WriteLine( ), all of which are defined as static.Prep By: Sunitha Pramod Page 8
WriteLine( ) pumps a text string (including a carriage return) to the output stream.
The Write( ) method pumps text to the output stream without a carriage return. ReadLine( ) allows you to receive information from the input stream up until the carriagereturn, while
Read( ) is used to capture a single character from the input stream.// Make use of the Console class to perform basic IO.
using System;
class helloclass
{
static int Main(string[] args)
{Console.Write("\n\nEnter your name: ");
string s = Console.ReadLine();
Console.WriteLine("Name is {0}\n", s);
Console.Write("Enter your age: ");s = Console.ReadLine();
Console.WriteLine("you are {0} years old: ", s);
Console.ReadLine();
return 0;
}
}
Output:
Enter your name: smithName is smith
Enter your age: 25
you are 25 years old:
```````````````````````````````````````````````````
1. The Default Parameter Passing BehaviorThe default manner in which a parameter is sent into a function is by value. Simply put, if
you do not mark an argument with a parameter-centric keyword, a copy of the data is passed into
the function:
using System;
class Program{
public static int Add(int x, int y)
{
int ans = x + y;
// Caller will not see these changes as you are modifying a copy// of the original data
x = 1000;
y = 2000;
-
8/3/2019 .Net to Print
2/12
return ans;
}
static void Main(string[] args)
{
int x=5,y=7;
Console.WriteLine("Before call: X:{0},y:{1}",x,y);
Console.WriteLine("Answer is: {0}",Add(x,y));Console.WriteLine("After call: X: {0},y:{1}",x,y);
Console.ReadLine();
}
Prep By: Sunitha Pramod Page 20
}
Output:
Before call: X:5,y:7
Answer is: 12
After call: X: 5,y:7
2. The Reference (ref) parametersReference parameters don't pass the values of the variables used in the function member
invocation - they use the variables themselves. Rather than creating a new storage location forthe variable in the function member declaration, the same storage location is used, so the value of
the variable in the function member and the value of the reference parameter will always be the
same. Reference parameters need the ref modifier as part of both the declaration and the
invocation - that means it's always clear when you're passing something by reference.using System;
class Program
{
public static void swap(ref string st1,ref string st2)
{
string temp;
temp = st1;
st1 = st2;st2 = temp;
}
static void Main(string[] args)
{
string s1 = "First string";
string s2 = "second string";
Console.WriteLine("Before: {0},{1}", s1, s2);
swap(refs1, refs2);
Console.WriteLine("After: {0},{1}", s1, s2);
Console.ReadLine();
}
Output: Before: First string,second stringAfter: second string,First string
Here, the caller has assigned an initial value to local string data (s1 and s2). Once the call
to swap returns, s1 now contains the values second string, while s2 contains the values First
string.
3. The Output (out) parametersPrep By: Sunitha Pramod Page 21
Like reference parameters, output parameters don't create a new storage location, but
use the storage location of the variable specified on the invocation. Output parameters need the
-
8/3/2019 .Net to Print
3/12
out modifier as part of both the declaration and the invocation - that means it's always clear
when you're passing something as an output parameter.
Output parameters are very similar to reference parameters. The only differences are:
The variable specified on the invocation doesn't need to have been assigned a value
before it is passed to the function member. If the function member completes normally,
the variable is considered to be assigned afterwards (so you can then "read" it).
The parameter is considered initially unassigned (in other words, you must assign it avalue before you can "read" it in the function member).
The parametermustbe assigned a value before the function member completes normally.
using System;
class Program
{
public static void Add(int x, int y, out int ans)
{
ans = x + y;
}
static void Main(string[] args)
{
int ans;Add(90, 90, out ans);
Console.WriteLine("90+90={0}", ans);
Console.ReadLine();
}}
OutPut: 90+90=180
//Returning multiple output parameters
using System;
class Program
{
public static void FillTheseValues(out int a, out string b, out bool c)
{a=10;
b="hello";
c = true;
}
static void Main(string[] args)
{
Prep By: Sunitha Pramod Page 22
int i;
string str;
bool b;
FillTheseValues(out i, out str, out b);
Console.WriteLine("int is: {0}", i);Console.WriteLine("String is: {0}", str);
Console.WriteLine("Bool is :{0}", b);
Console.ReadLine();
}
}
Output:
int is: 10
String is: hello
-
8/3/2019 .Net to Print
4/12
Bool is :True
4. The Params Modifier:In C# 'params' parameter allows us to create a method that may be sent to a set of
identically typed arguments as a single logical parameter. To better understand this situation
let us see a program that calculates the average of any number of integers.
using System;
class Program{
public static int Average(params int[] values)
{
int sum = 0;
for (int i = 0; i < values.Length; i++)
sum = sum + values[i];
return (sum / values.Length);
}
static void Main(string[] args)
{
//pass int values in comma separated form
int average;average = Average(30, 40, 70);
Console.WriteLine("The average is: {0}", average);
Prep By: Sunitha Pramod Page 23
//Pass an array of intint[] data ={ 30, 40, 70 };
average=Average(data);
Console.WriteLine("The avearge of the int array ele:{0}",average);
Console.ReadLine();
}
}
Output:
The average is: 46The avearge of the int array ele:46
555555555555555
\Differences between value type and Reference type:
Value types are stored in stack
Reference types are stored in heap When we assign one value type to another value type, it is cloned and the two instancesoperate independently.
For eg, a=b; A new memory ;location is allocated for a and it is hold the valueindividually. Changing the value ofb does not affect a.
When reference type is assigned to another reference type, the two reference share thesame instance and change made by the one instance affects the other.
For eg, a=b; a reference (pointer) is created for a and both a and b now points to same
address. Any alteration made to b will affect a. Value types cannot be set to null
Reference types can be set to null Converting value type to reference type is called boxing.
Converting reference type to value type to called unboxing.
Value types are by default passed by value to other methods.
-
8/3/2019 .Net to Print
5/12
Reference types are by default passed by reference to other methods.
The stack holds value type variables plus return addresses for functions. All numeric types, ints, floats a
```````````````````````````````````````Passing Reference Types by Value:using System;
class person
{public string fullName;
public int age;
public person() { }
public person(string n, int a)
{
fullName = n;
age = a;
}
public void printInfo()
{
Console.WriteLine("{0} is {1} years old", fullName, age);
}}
class program
{
public static void SendAPersonByValue(person p){
//change the age of p
p.age = 99;
Prep By: Sunitha Pramod Page 28
//will the caller see this reassignment
p = new person("nikki", 25);
}
public static void Main(string[] args){
//passing reference types by value
Console.WriteLine("******passing person object by value********");
person smith = new person("smith", 10);
Console.WriteLine("Before by value call, person is:");
smith.printInfo();
SendAPersonByValue(smith);
Console.WriteLine("After by value call, person is:");
smith.printInfo();
Console.ReadLine();
}
}Output:
******passing person object by value********
Before by value call, person is:
smith is 10 years old
After by value call, person is:
smith is 99 years old
Passing Reference Types by Reference:using System;
-
8/3/2019 .Net to Print
6/12
class person
{
public string fullName;
public int age;
public person() { }
public person(string n, int a)
{fullName = n;
age = a;
}
public void printInfo()
{
Console.WriteLine("{0} is {1} years old", fullName, age);
}
}
Prep By: Sunitha Pramod Page 29
class program
{
public static void SendAPersonByReference(refperson p){
//change the age of p
p.age = 99;
//will the caller see this reassignmentp = new person("nikki", 25);
}
public static void Main(string[] args)
{
//passing reference types by value
Console.WriteLine("******passing person object by
reference********");
person smith = new person("smith", 10);Console.WriteLine("Before by ref call, person is:");
smith.printInfo();
SendAPersonByReference(refsmith);
Console.WriteLine("After by ref call, person is:");
smith.printInfo();
Console.ReadLine();
}
}
Output:
******passing person object by reference********
Before by ref call, person is:
smith is 10 years oldAfter by ref call, person is:
nikki is 25 years old
77777777777777777
Understanding Boxing and Unboxing Operations:Boxing and unboxing is a essential concept in C# type system. With Boxing and unboxing
one can link between value-types and reference-types by allowing any value of a value-type to
-
8/3/2019 .Net to Print
7/12
be converted to and from type object. Boxing and unboxing enables a unified view of the type
system wherein a value of any type can ultimately be treated as an object.
Prep By: Sunitha Pramod Page 30
Converting value type to reference type is called boxing by storing the variable in a
System.Object.
Converting reference type to value type to called unboxing
The following example shows both boxing and unboxing:class Test
{
Public static void Main()
{
int i=1;
object o = i; //boxing
int j=(int) o; //unboxing
}
}
An int value can be converted to object and back again to int When a variable of a value type needs to be converted to a reference type, an object box is
allocated to hold the value, and the value is copied into the box. Unboxing is just opposite. When an object box is cast back to its original value type, thevalue is coped out of the box and into the appropriate storage location.
using System;
class program{
public static void Main(string[] args)
{
Int32 x1 = 10;
object o1 = x1;// Implicit boxing
Console.WriteLine("The Object o1 = {0}", o1);// prints out 10
//-----------------------------------------------------------
Int32 x2 = 10;object o2 = (object)x2;// Explicit Boxing
Console.WriteLine("The object o2 = {0}", o2);// prints out 10
Console.ReadLine();
}
}
Output:
Prep By: Sunitha Pramod Page 31
The Object o1 = 10
The object o2 = 10
Unboxing Custom Value Types:using System;
struct Mypoint{
public int x, y;
}
class program
{
//compiler error, since to access the field data of Mypoint, you must
//first unbox the parameter. This is done in the following method.
/*static void UseBoxedMypoint(object o)
-
8/3/2019 .Net to Print
8/12
{
Console.WriteLine({0},{1}},o.x,o.y);
}*/
static void UseBoxedMypoint(object o)
{
if(o is Mypoint)
{Mypoint p = (Mypoint)o;
Console.WriteLine("{0},{1}", p.x, p.y);
}
else
Console.WriteLine("You did not send a Mypoint");
}
public static void Main(string[] args)
{
Mypoint p;
p.x = 10;
p.y = 20;
UseBoxedMypoint(p);Console.ReadLine();
}
}
Output:10,20
55555555555
Method Purposepublic virtual bool Equals(object ob)
whether the object is the same as the one referred
to by ob.public static bool Equals(object ob1, whether ob1 is the same as ob2.
Prep By: Sunitha Pramod Page 36
object ob2)
protected Finalize()
Performs shutdown actions prior to garbagecollection.
public virtual int GetHashCode() Returns the hash code.
public Type GetType() Return the type of an object.
protected object MemberwiseClone()
Makes a "shallow copy" of the object. (The
members are copied, but objects referred to by
members are not.)public static bool
ReferenceEquals(object ob1, object
ob2)
whether ob1 and ob2 refer to the same object.
public virtual string ToString()Returns a string that describes the object. It is
automatically called when an object is output
using WriteLine().
-
8/3/2019 .Net to Print
9/12
6666666666666
.NET Array Types:In C#, an array index starts at zero. That means, first item of an array will be stored at 0th
position. The position of the last item on an array will total number of items - 1.
In C#, arrays can be declared as fixed length or dynamic. Fixed length array can stores a
predefined number of items, while size of dynamic arrays increases as you add new items to thearray. You can declare an array of fixed length or dynamic.
For example, the following like declares a dynamic array of integers.
int [] intArray;
The following code declares an array, which can store 5 items starting from index 0 to 4.
int [] intArray;
intArray = new int[5];
The following code declares an array that can store 100 items starting from index 0 to 99.
int [] intArray;
intArray = new int[100];
Arrays can be divided into four categories. These categories are single-dimensional
arrays, multidimensional arrays or rectangular arrays, jagged arrays, and mixed arrays.
In C#, arrays are objects. That means declaring an array doesn't create an array. Afterdeclaring an array, you need to instantiate an array by using the "new" operator
Prep By: Sunitha Pramod Page 41
The following code declares and initializes an array of three items of integer type.
int [] intArray;
intArray = new int[3] {0, 1, 2};
The following code declares and initializes an array of 5 string items.
string[] strArray = new string[5] {"Ronnie", "Jack", "Lori", "Max", "Tricky"};
You can even direct assign these values without using the new operator.
string[] strArray = {"Ronnie", "Jack", "Lori", "Max", "Tricky"};
You can initialize a dynamic length array as following
string[] strArray = new string[] {"Ronnie", "Jack", "Lori", "Max", "Tricky"};
Arrays As Parameters (and Return Values):Once you created an array, you are free to pass it as a parameter and receive it as a
member return vales.
Example:
using System;
class program
{
static void PrintArrays(int[] MyInt){
Console.WriteLine("The int array is");
for (int i = 0; i < MyInt.Length; i++)
Console.WriteLine(MyInt[i]);
}static string[] GetStringArray()
{
string[] TheStrings = { "Hello", "What", "That", "stringarray" };
return TheStrings;//return a string array
}
public static void Main(string[] args)
{
int[] ages ={ 10, 20, 30, 40 };
-
8/3/2019 .Net to Print
10/12
PrintArrays(ages);//passing an array as parameter
string[] strs = GetStringArray(); //Receiving a string array in a var strs
Console.WriteLine("The string array is");
foreach (string s in strs)
Console.WriteLine(s);
Console.ReadLine();
Prep By: Sunitha Pramod Page 42}
}
Output:
The int array is
10
20
30
40
The string array is
Hello
What
Thatstringarray
Working with Multidimensional Arrays:using System;
class program{
public static void Main(string[] args)
{
//A rectangular MD array
int[,] a;
a = new int[3, 3];
//populate (3*3) array.
for (int i = 0; i
-
8/3/2019 .Net to Print
11/12
Array class is an abstract base class but it provides CreateInstance method to construct an array.
The Array class provides methods for creating, manipulating, searching, and sorting arrays.
Table 1 describes Array class properties.
IsFixedSize Return a value indicating if an array has a fixed size or not.
IsReadOnly Returns a value indicating if an array is read-only or not.
Length Returns the total number of items in all the dimensions of an array.
Rank Returns the number of dimensions of an array.Table 1: The System.Array Class Properties
Table 2 describes some of the Array class methods.
BinarySearch This method searches a one-dimensional sorted Array for a value, using abinary search algorithm.
Clear This method removes all items of an array and sets a range of items in the array
to 0.
Copy This method copies a section of one Array to another Array and performs
type casting and boxing as required.
CopyTo This method copies all the elements of the current one-dimensional Array to
the specified one-dimensional Array starting at the specified destinationArray index.
CreateInstance This method initializes a new instance of the Array class.GetLength This method returns the number of items in an Array.Reverse This method reverses the order of the items in a one-dimensional Array or in a
portion of the Array.Prep By: Sunitha Pramod Page 44Sort This method sorts the items in one-dimensional Array objects.
Write C# program to demonstrate the methods of Array class i,e copy, sort, reverse, and clearusing System;
class program
{
public static void Main(string[] args)
{
//Array of stringstring[] names = { "amir", "sharuk", "salman", "Hrithik" };
//print the names
Console.WriteLine("\nNames are");
for(int i=0;i
-
8/3/2019 .Net to Print
12/12
Console.WriteLine("{0}",names[i]);
//clear out all except hrithik
Array.Clear(names,1,3);
Console.WriteLine("\nclear out all except hrithik");
for(int i=0;i