标签: scope

Dim,Global,Public和Private作为模块化字段访问修饰符有什么区别?

在VB6/VBA中,您可以在特定SubFunction方法之外声明模块级变量.我用PrivatePublic前内部模块和理解他们,像这样:

  • Public - 模块内的所有代码和模块外的所有代码都可见,实际上使其成为全局代码.
  • Private - 仅对模块内的代码可见.

我注意到你可以使用DimGlobal作为模块变量的修饰符.是DimGlobal从不同Private,并Public分别作为模块化领域访问修饰符使用时?如果是这样,他们有什么不同?

vb6 vba scope access-modifiers

67
推荐指数
1
解决办法
13万
查看次数

C#变量范围:'x'不能在此范围内声明,因为它会给'x'赋予不同的含义

if(true)
{
    string var = "VAR";
}

string var = "New VAR!";
Run Code Online (Sandbox Code Playgroud)

这将导致:

错误1在此范围内无法声明名为"var"的局部变量,因为它会为"var"赋予不同的含义,"var"已在"子"范围中用于表示其他内容.

什么都没有惊天动地,但这不是一般的错误吗?一位开发人员和我想知道第一个声明是否应该在不同的范围内,因此第二个声明不能干扰第一个声明.

为什么C#无法区分这两个范围?第一个IF范围是否应该与方法的其余部分完全分开?

我无法从if外部调用var,因此错误消息是错误的,因为第一个var在第二个范围内没有相关性.

c# scope

66
推荐指数
3
解决办法
2万
查看次数

VB.Net属性 - 公共获取,私有集

我想我会问...但是有没有办法让公共部分属性可用,但保持私有?

否则我认为我需要两个属性或属性和方法,只是认为这将更清洁.

vb.net scope properties

65
推荐指数
5
解决办法
11万
查看次数

cmake变量范围,add_subdirectory

我的项目根目录中有一个CMakeLists.txt,而我的/ src文件夹中有一个./ src文件夹中的那个只包含一个带有.cpp文件(set (SOURCEFILES main.cpp foo.cpp))的变量,并且在我做的根CMakeLists.txt中add_subdirectory(src),后来我做了add_executable(MyApp ${SOURCEFILES}).

但是cmake给了我错误

调用add_executable时参数数量不正确,未提供任何来源

如何让cmake查看变量?我读到cmake只知道全局变量,但显然并非如此......

scope cmake

65
推荐指数
1
解决办法
5万
查看次数

C#中lambda变量的范围是什么?

我对lambda变量的范围感到困惑,例如以下内容

var query = 
    from customer in clist
    from order in olist
    .Where(o => o.CustomerID == customer.CustomerID && o.OrderDate ==  // line 1
        olist.Where(o1 => o1.CustomerID == customer.CustomerID)        // line 2
             .Max(o1 => o1.OrderDate)                                  // line 3
    )
    select new {
        customer.CustomerID,
        customer.Name,
        customer.Address,
        order.Product,
        order.OrderDate
    };
Run Code Online (Sandbox Code Playgroud)

在第1行中,我声明了一个lambda变量'o',这意味着我不能在第2行再次声明它(或者至少编译器在我尝试时会抱怨)但是即使'o1'已经存在,它也不会抱怨第3行??

lambda变量的范围是什么?

c# lambda scope

65
推荐指数
3
解决办法
2992
查看次数

为什么分配给我的全局变量不适用于Python?

我在尝试理解python范围规则时遇到了麻烦.

使用以下脚本:

a = 7

def printA():
    print "Value of a is %d" % (a)

def setA(value):
    a = value
    print "Inside setA, a is now %d" %(a)


print "Before setA"
printA()
setA(42)
print "After setA"
printA()
Run Code Online (Sandbox Code Playgroud)

给出了意想不到的(对我来说)输出:

    Before setA
    Value of a is 7
    Inside setA, a is now 42
    After setA
    Value of a is 7

我希望最后一次打印a的值为42,而不是7.我对Python的全局变量范围规则缺少什么?

python scope global-variables

64
推荐指数
3
解决办法
6万
查看次数

C++中的静态变量

我想知道头文件中的静态变量与类中声明的静态变量之间的区别.在头文件中声明静态变量时,其范围仅限于.h文件或所有单元.一般来说静态变量在类中声明时在.cpp文件中初始化了吗?那么这是否意味着静态变量范围仅限于2个编译单元?

c++ static scope

64
推荐指数
3
解决办法
13万
查看次数

PowerShell中的变量范围

PowerShell的一个令人遗憾的事情是函数和脚本块是动态范围的.

但另一件让我感到惊讶的事情是变量在内部范围内表现为写时复制.

$array=@("g")
function foo()
{
    $array += "h"
    Write-Host $array
}

& {
    $array +="s"
    Write-Host $array
}
foo

Write-Host $array
Run Code Online (Sandbox Code Playgroud)

输出是:

g s
g h
g
Run Code Online (Sandbox Code Playgroud)

这使动态范围变得不那么痛苦.但是我如何避免写时复制?

powershell scope

64
推荐指数
4
解决办法
12万
查看次数

定义自定义Sublime Text 2片段的范围

在尝试为Sublime Text 2编写自己的代码片段时,我遇到了以下两个问题:

  1. 查找范围键.我发现我可以逐个查看我的包,并找到对声明的"范围"属性的引用.例如在~/Library/Application Support/Sublime Text 2/Packages/JavaScript/Comments.tmPreferences(我的HTML包中的文件)中有以下两行:

    <key>scope</key>
    <string>source.js</string>
    
    Run Code Online (Sandbox Code Playgroud)

    因此,如果我希望我的当前代码段能够处理javascript文件,我将我的范围定义为:

    <scope>source.js</scope>
    
    Run Code Online (Sandbox Code Playgroud)

    我假设所有这些范围键都是根据我安装的软件包即时定义的.Sublime Text是否在我可以更容易引用的任何地方构建列表?仔细阅读一堆包文件似乎过于繁琐.

  2. 定义多个范围属性.我已经想到了,以下行允许我的代码段在HTML和JavaScript文件中工作.

    <scope>text.html, source.js</scope>
    
    Run Code Online (Sandbox Code Playgroud)

scope code-snippets sublimetext2

64
推荐指数
5
解决办法
3万
查看次数

如何在Rails3中使用unscoped关联关系?

由于信息安全限制,我在产品上有默认范围.

class Product < ActiveRecord::Base
  has_many :photos

  default_scope where('visible = 1')
end
Run Code Online (Sandbox Code Playgroud)

但是,在我的相关照片模型中,我还必须找到不可见的产品.

class Photo < ActiveRecord::Base
  belongs_to :product
end

my_photo.product
Run Code Online (Sandbox Code Playgroud)

在其他情况下,我可以使用unscoped来绕过default_scope,例如在Product.unscoped.find_by_title('abc').然而:

如何在使用记录关联时删除范围?

my_photo.unscoped.product因为my_photo没有调用方法,所以没有意义unscoped.也没有my_photo.product.unscoped任何意义,因为my_photo.product可能已经是零.

scope ruby-on-rails arel ruby-on-rails-3

62
推荐指数
5
解决办法
3万
查看次数