小编dar*_*mkd的帖子

为什么 attr_accessor 定义的变量在方法中不可用?

class A
 attr_accessor :rank
 def change_rank
   rank = rank + 1
 end
end

a = A.new
a.rank = 5
p a.rank
a.change_rank
p a.rank
Run Code Online (Sandbox Code Playgroud)

为 rank = rank + 1 (undefined method + for nil:Nilclass) 产生错误。对“rank”方法的隐式调用不应该返回实例变量@rank 的值吗?出于某种原因,如果我将第 4 行更改为:

self.rank = self.rank + 1
Run Code Online (Sandbox Code Playgroud)

为什么显式调用 rank 方法有效而隐式调用无效?

ruby

1
推荐指数
1
解决办法
217
查看次数

CSS [attribute | = value] vs [attribute*= value]选择器

CSS3 [attribute*= value] Selector基本上完成同样的事情时,为什么我们需要CSS [attribute | = value]选择器,浏览器兼容性几乎相似?有没有第一个CSS选择器做的事情,第二个不能?这是第一次遇到两个非常相似的选择器,并想知道为什么第一个存在于第一位.

css

1
推荐指数
2
解决办法
301
查看次数

为什么我不需要为C#数据类型别名使用"使用系统"但是需要它们用于.NET类型?

假设我没有using System顶部的C#应用​​程序.这将有效:

string a;
Run Code Online (Sandbox Code Playgroud)

但这不会:

String a;
Run Code Online (Sandbox Code Playgroud)

为什么第一个代码有效,尽管C#类型的关键字string在后台映射中System.String(这个代码中没有包含)?他们不需要using System运作吗?

c#

0
推荐指数
1
解决办法
88
查看次数

为什么这个子类不会实例化

我有这个代码:

class Parent
{
    public Parent(string someArg)
    {
        Console.WriteLine("Parent");
    }

}

class Child : Parent
{
    public Child(string someArg)
    {
        Console.WriteLine("Child");
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我实例化:

var child = new Child("something");
Run Code Online (Sandbox Code Playgroud)

给我一个错误.我知道它与父构造函数有关,但我不确定为什么会这样.base每次我在父级中有一个不是无参数的构造函数时,我是否需要使用?为什么?

c#

-1
推荐指数
1
解决办法
90
查看次数

标签 统计

c# ×2

css ×1

ruby ×1