当前在线人数14278
首页 - 分类讨论区 - 电脑网络 - 窗口里的风景版 -阅读文章
未名交友
[更多]
[更多]
文章阅读:C#.Net Funsdamentals (2)
[同主题阅读] [版面: 窗口里的风景] [作者:cogt] , 2007年01月03日09:31:24
cogt
进入未名形象秀
我的博客
[上篇] [下篇] [同主题上篇] [同主题下篇]

发信人: cogt (苦荆茶), 信区: DotNet
标  题: C#.Net Funsdamentals (2)
发信站: BBS 未名空间站 (Wed Jan  3 09:31:28 2007), 转信

ntroduction

C# (pronounced "C sharp") is a simple, modern, object-oriented, and type-
safe programming language. It will immediately be familiar to C and C++
programmers. C# combines the high productivity of Rapid Application
Development (RAD) languages and the raw power of C++.

Types


C# supports two kinds of types: value types and reference types. Value types
include simple types (e.g., char, int, and float), enum types, and struct
types. Reference types include class types, interface types, delegate types,
and array types.

Value types differ from reference types in that variables of the value types
directly contain their data, whereas variables of the reference types store
references to objects. With reference types, it is possible for two
variables to reference the same object, and thus possible for operations on
one variable to affect the object referenced by the other variable. With
value types, the variables each have their own copy of the data, and it is
not possible for operations on one to affect the other.

The example

using System;
class Class1
{
  public int Value = 0;
}
class Test
{
  static void Main() {
     int val1 = 0;
     int val2 = val1;
     val2 = 123;
     Class1 ref1 = new Class1();
     Class1 ref2 = ref1;
     ref2.Value = 123;
     Console.WriteLine("Values: {0}, {1}", val1, val2);
     Console.WriteLine("Refs: {0}, {1}", ref1.Value, ref2.Value);
  }
}
shows this difference. The output produced is

Values: 0, 123
Refs: 123, 123
The assignment to the local variable val1 does not impact the local variable
val2 because both local variables are of a value type (the type int) and
each local variable of a value type has its own storage. In contrast, the
assignment ref2.Value = 123; affects the object that both ref1 and ref2
reference.

The lines

Console.WriteLine("Values: {0}, {1}", val1, val2);
Console.WriteLine("Refs: {0}, {1}", ref1.Value, ref2.Value);
deserve further comment, as they demonstrate some of the string formatting
behavior of Console.WriteLine, which, in fact, takes a variable number of
arguments. The first argument is a string, which may contain numbered
placeholders like {0} and {1}. Each placeholder refers to a trailing
argument with {0} referring to the second argument, {1} referring to the
third argument, and so on. Before the output is sent to the console, each
placeholder is replaced with the formatted value of its corresponding
argument.

Developers can define new value types through enum and struct declarations,
and can define new reference types via class, interface, and delegate
declarations. The example

using System;
public enum Color
{
  Red, Blue, Green
}
public struct Point
{
  public int x, y;
}
public interface IBase
{
  void F();
}
public interface IDerived: IBase
{
  void G();
}
public class A
{
  protected virtual void H() {
     Console.WriteLine("A.H");
  }
}
public class B: A, IDerived
{
  public void F() {
     Console.WriteLine("B.F, implementation of IDerived.F");
  }
  public void G() {
     Console.WriteLine("B.G, implementation of IDerived.G");
  }
  override protected void H() {
     Console.WriteLine("B.H, override of A.H");
  }
}
public delegate void EmptyDelegate();

Summary


These will help u understand fundas of c#.net .. will continue


--

※ 来源:·BBS 未名空间站 mitbbs.com·[FROM: 216.99.]

[上篇] [下篇] [同主题上篇] [同主题下篇]
[转寄] [转贴] [回信给作者] [修改文章] [删除文章] [同主题阅读] [从此处展开] [返回版面] [快速返回] [收藏] [举报]
 
回复文章
标题:
内 容:

未名交友
将您的链接放在这儿

友情链接


 

Site Map - Contact Us - Terms and Conditions - Privacy Policy

版权所有,未名空间(mitbbs.com),since 1996