标签: access-modifiers

为什么我不能从另一个类调用所有方法?

我尝试从另一个类调用一个方法.我添加了引用并找到了类.我可以调用这个类的一些方法但是我不能调用这个类中的所有方法.

主类是public partial class和我想要使用的方法的类private static class.我尝试调用的方法是public static.我可以调用的方法和我不能调用的方法没有区别.这是我不明白的问题.请有人解释一下吗?

namespace MyNamespace2
{
    private static class MyClass
    {
        public static void MyMethod() { }
    }
}

namespace MyNamespace1
{
    class Program
    {
        static void Main(string[] args)
        {
            //can't call
            MyClass.MyMethod();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# access-modifiers

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

默认情况下,接口不是公开的吗?

我记得默认情况下该接口是公共的。我错了吗?当我尝试从接口实现“公共静态”方法时。VS告诉我,该接口中的方法比“公共静态”方法更难访问。当我将public添加到接口时,它已修复。默认情况下,接口不是公开的吗?

interface IDoubleFloatEventInvoker {
 void AddListener(EventName eventName, UnityAction<float, float> unityAction);
}

public static void AddInvoker(EventName eventName, IDoubleFloatEventInvoker invoker)
{
    foreach (UnityAction<float, float> listener in doubleFloatListeners[eventName])
    {
        invoker.AddListener(eventName, listener);
    }
    doubleFloatInvokers[eventName].Add(invoker);
}
Run Code Online (Sandbox Code Playgroud)

“ VS说IDoubleFloatEventInvoker比AddInvoker函数更难访问”

c# static interface access-modifiers

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

java中如何从可变对象创建不可变对象?

如何创建不可变的星球以便名称不会改变?我很挣扎,因为我认为这是具有可变对象的不可变项目。如果我错了请纠正我。

每次我更改输出中的名称也会更改。我错过了什么吗?

我尝试将所有字段设为私有和最终(不在本例中),但我认为我缺少一些工作代码。

我知道 java.util.Date 已被弃用,但这只是示例。

import java.util.Date;   

public final class Planet {  
    String name;                                                      
    private final Date discoveryDate;  

    public Planet (String name, Date discoveryDate) {               
        this.name = name;
        this.discoveryDate = new Date(discoveryDate.getTime());    
    }

    public String getName() 
        return name;
    }

    public Date getDiscoveryDate() {               
        return new Date(discoveryDate.getTime());     
    }

    public static void main(String [] args) {
        Planet Earth = new Planet("Earth Planet", new Date(2020,01,16,17,28));

        System.out.println("Earth");
        System.out.println("------------------------------------");
        System.out.println("Earth.getName: " + Earth.getName());
        System.out.println("Earth.getDiscoveryDate: " + Earth.getDiscoveryDate());
    }
}
Run Code Online (Sandbox Code Playgroud)

java oop access-modifiers immutability

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

Java中的访问修饰符


编辑修复标记为重复或更清楚为什么它似乎是重复.当时我不知道那个包和默认在哪里,因此这个帖子的原因相同.


现在我正在准备我的Java考试的考试问题,我有一个问题,要求我解释访问修饰符,并询问我有关修饰符的问题.

我可以找到有关私有,受保护,公共和默认的信息,但无法在Package上找到任何内容.

有人可以给我一个答案或链接我一篇关于它的文章吗?

java access-modifiers

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

访问修饰符,基本上是私有的,但可以由儿童访问

在Java中,有没有办法让一个访问修饰符基本上是私有的,除了这个方法可以被孩子访问?我正在开发一个程序,其中有一些方法是某个类的孩子需要的(并且希望避免重复),但我不想公开,因为我不希望这些幼稚类的对象是实例化以访问这些方法.

如果没有这样的事情,你们会建议在这个问题上实现最佳实践?

优选地,在同一包装中 - protected不满足此要求.

java object access-modifiers

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

从什么时候开始 C# 枚举可以是私有的?

我认为这是不可能的,但不知何故你可以添加修饰符以enum不同于public.

这段代码工作得很好,并充当实际的私有成员(在包含 class 之外无法访问C

namespace N {
    public class C {
        private enum E { ... }
    }
}
Run Code Online (Sandbox Code Playgroud)

根据@Ben在这个问题中的回答这应该是不可能的:

简短回答:尽可能少的访问(参见 Jon Skeet 的回答)。

长答案:

非嵌套类型、枚举和委托可访问性可能只有内部或公共可访问性

                     | Default   | Permitted declared accessibilities
------------------------------------------------------------------
namespace            | public    | none (always implicitly public)

enum                 | public    | none (always implicitly public)

interface            | internal  | public, internal

class                | internal  | public, internal

struct               | internal  | …
Run Code Online (Sandbox Code Playgroud)

c# enums access-modifiers

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

什么是 C# 访问修饰符,它们如何比较?有没有像样的视觉图?

研究:我已经阅读了MSDN C# Access Modifiers 参考,它提供了定义,但例子很少。这些定义是正确的,但如果在图表中直观地呈现它们会更容易理解。搜索 SO 我发现了几个问题,讨论了使用修饰符的特殊情况,或者将一个修饰符与另一个进行比较,但不是所有的修饰符,也不是视觉上的。我还在网上搜索了“C# Access Modifier Diagrams”并找到了这个快速参考,其中包含一些示例和图表,但并不像我希望的那样清晰。我无法找到此信息的多合一来源。

问题 我想找到 C# 访问修饰符的多合一指南,该指南使用定义、代码示例和可视化辅助工具(例如图表)显示以下内容。

  • C# 中有哪些不同的访问修饰符?
  • 每个修饰符的范围是什么,它们如何比较?
  • 它们如何应用于内部类、外部类、继承类和非继承类?

c# access-modifiers

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

标签 统计

access-modifiers ×7

c# ×4

java ×3

.net ×1

enums ×1

immutability ×1

interface ×1

object ×1

oop ×1

static ×1