Csharp/C Sharp/Class Interface/Object Instance
Версия от 15:31, 26 мая 2010; (обсуждение)
Содержание
Calling a Class Method on a Class
using System;
public class MainClass {
public static void Main() {
string firstName = "J";
string lastName = "R";
string name = string.Format("{0} {1}", firstName, lastName);
Console.WriteLine(name);
}
}
Calling an Instance Method on an Object
using System;
public class MainClass {
public static void Main() {
string name = "Joe";
Console.WriteLine(name.ToUpper());
}
}
Catch NullReferenceException Exception
using System;
class MyClass {
public int Value;
}
class MainClass {
public static void Main() {
try {
MyClass MyObject = new MyClass();
MyObject = null;
MyObject.Value = 123;
} catch (NullReferenceException) {
Console.WriteLine("Cannot reference a null object.");
}
}
}
Object assignment
using System;
public class Foo
{
public int i;
}
class RefTest1App
{
static void Main(string[] args)
{
Foo test1 = new Foo();
test1.i = 1;
Foo test2 = new Foo();
test2.i = 2;
Console.WriteLine("BEFORE OBJECT ASSIGNMENT");
Console.WriteLine("test1.i={0}", test1.i);
Console.WriteLine("test2.i={0}", test2.i);
Console.WriteLine();
test1 = test2;
Console.WriteLine("AFTER OBJECT ASSIGNMENT");
Console.WriteLine("test1.i={0}", test1.i);
Console.WriteLine("test2.i={0}", test2.i);
Console.WriteLine();
test1.i = 42;
Console.WriteLine("AFTER CHANGE TO ONLY TEST1 MEMBER");
Console.WriteLine("test1.i={0}", test1.i);
Console.WriteLine("test2.i={0}", test2.i);
}
}
Object.ReferenceEquals Method
using System;
public class Starter {
public static void Main() {
Employee obj1 = new Employee(5678);
Employee obj2 = (Employee)obj1.Clone();
if (Employee.ReferenceEquals(obj1, obj2)) {
Console.WriteLine("objects identical");
} else {
Console.WriteLine("objects not identical");
}
}
}
class Employee : ICloneable {
public Employee(int id) {
if ((id < 1000) || (id > 9999)) {
throw new Exception(
"Invalid Employee ID");
}
}
public object Clone() {
return MemberwiseClone();
}
}
Pass by ref for object parameters
using System;
using System.Collections.Generic;
using System.Text;
class Pass {
public static void Value(ref int param) {
param = 42;
}
public static void Reference(WrappedInt param) {
param.Number = 42;
}
}
class WrappedInt {
public int Number;
}
class Program {
static void Entrance() {
int i = 0;
Console.WriteLine(i);
Pass.Value(ref i);
Console.WriteLine(i);
WrappedInt wi = new WrappedInt();
Console.WriteLine(wi.Number);
Pass.Reference(wi);
Console.WriteLine(wi.Number);
}
static void Main(string[] args) {
try {
Entrance();
} catch (Exception ex) {
Console.WriteLine(ex.Message);
}
}
}
Point object
using System;
using System.Collections.Generic;
using System.Text;
class Point {
public Point() {
this.x = -1;
this.y = -1;
objectCount++;
}
public Point(int x, int y) {
this.x = x;
this.y = y;
objectCount++;
}
public double DistanceTo(Point other) {
int xDiff = this.x - other.x;
int yDiff = this.y - other.y;
return Math.Sqrt((xDiff * xDiff) + (yDiff * yDiff));
}
public static int ObjectCount() {
return objectCount;
}
private int x, y;
private static int objectCount = 0;
}
class Program {
static void Main(string[] args) {
try {
Point origin = new Point();
Point bottomRight = new Point(1024, 1280);
double distance = origin.DistanceTo(bottomRight);
Console.WriteLine("Distance is {0}", distance);
Console.WriteLine("No of Point objects: {0}", Point.ObjectCount());
} catch (Exception ex) {
Console.WriteLine(ex.Message);
}
}
}