一位熟识且曾经共事的人突然打电话给我,向我提供一份无法忽视的合同。他确信我可以在很短时间内掌握C#(我之前有C/C++、PHP、Python和Lua的经验)。
这个问题与我的另外两个问题相一致: PHP常见错误 Python 2.x陷阱和错误
这个问题与我的另外两个问题相一致: PHP常见错误 Python 2.x陷阱和错误
using System;
using System.Threading;
using System.Diagnostics;
namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args)
{
Thread t = new Thread(GCThread);
t.IsBackground = true;
t.Start();
SomeClass sc = new SomeClass();
sc.Test();
Console.Out.WriteLine("Ending");
}
private static void GCThread()
{
while (true)
{
GC.Collect();
}
}
}
public class Disposable : IDisposable
{
public Boolean IsDisposed { get; set; }
public void Dispose()
{
IsDisposed = true;
}
}
public class SomeClass
{
private Disposable _Collectable = new Disposable();
~SomeClass()
{
_Collectable.Dispose();
Console.Out.WriteLine("Finalized");
}
public void Test()
{
Console.Out.WriteLine("Test()");
Disposable c = _Collectable;
Debug.Assert(!_Collectable.IsDisposed);
Thread.Sleep(100);
Console.Out.WriteLine("c.IsDisposed: " + c.IsDisposed);
}
}
}
在我的电脑上,该对象如下:
Test()
Finalized
c.IsDisposed: True
Ending
我认为你从C#转向C/C++会遇到更多的问题。
如果你已经熟悉这些语言,可能只需要阅读一本教科书来了解C#的相关知识,但我相信你不会有太多问题。
不要在类定义后面加上“;”!
在C++中:
class MyClass {
};
在C#中:
class MyClass {
}