Tag: 这个

将此作为静态方法中的参数传递

我在使用Visual C#中的一些代码遇到一些问题对于Windows Phone问题不在于它不起作用,因为它确实如此,但我不明白如何在静态类中创建一个静态方法,其中给自己一个参数: public static void MethodONe( this Timeline animation ) { //this class does not extend the TimeLine class, and is not connected to it in any //such way. animation.MethodTwo( ); } public static void MethodTwo( this Timeline animation ) { someCode( ); } 这个参数传递是如何被调用的,它究竟是做什么的?

在C#中访问成员时,`this`关键字是可选的吗?

我注意到如果你在一个类中有一个私有成员,你可以通过引用它的名称在类方法中访问它。 你不需要说this.memberName ,只是memberName有效。 那么在成员访问的上下文中this关键字是可选的吗? 当你想澄清范围时,我确实看到它很有用 – 当你有两个同名的变量时。 访问会员时是否还有其他理由使用它?

这与基地的区别

我很想知道C# this和base对象的区别。 使用它们时的最佳做法是什么?

为什么关键字’this’不能用于静态方法?

为什么不能在静态方法中使用关键字? 我想知道为什么C#定义了这个约束。 这种约束可以带来什么好处? [更新]:实际上,这是我在采访中遇到的一个问题。 我知道’静态’和’这个’的用法,基于你的所有回复,我想我知道为什么两者不能一起使用。 也就是说,静态方法用于更改状态或在类型级别执行某些操作,但是当您需要使用“this”表示您想要更改状态或在实例级别执行某些操作时。 为了区分类型的状态变化和实例的状态变化,c#donot允许在静态方法中使用’this’。 我对吗?

为此关键字指定struct值

我最近正在研究CancellationToken结构的内部结构,并发现了一些奇怪的结构(更确切地说,为this关键字赋值)。 其构造函数之一的代码如下: public CancellationToken( bool canceled ) { this = new CancellationToken(); if ( canceled ) { this.m_source = CancellationTokenSource.InternalGetStaticSource( canceled ); } } this关键字进行赋值的行的含义是什么? 请注意,类不能this关键字赋值 – 错误Cannot assign to ” because it is read-only 。

为什么结构中的迭代器可以修改它?

我发现允许在值类型中使用迭代器方法来修改this 。 但是,由于CLR的限制,调用方法没有看到修改。 ( this是通过值传递的) 因此,迭代器和非迭代器中的相同代码会产生不同的结果: static void Main() { Mutable m1 = new Mutable(); m1.MutateWrong().ToArray(); //Force the iterator to execute Console.WriteLine(“After MutateWrong(): ” + m1.Value); Console.WriteLine(); Mutable m2 = new Mutable(); m2.MutateRight(); Console.WriteLine(“After MutateRight(): ” + m2.Value); } struct Mutable { public int Value; public IEnumerable MutateWrong() { Value = 7; Console.WriteLine(“Inside MutateWrong(): ” […]

‘this’关键字作为属性

我很了解C#,但这对我来说很奇怪。 在一些旧程序中,我看到了这段代码: public MyType this[string name] { ……some code that finally return instance of MyType } 怎么称呼? 有什么用?