标签: access-modifiers

"私人"修饰符有什么作用?

考虑"私有"是类成员的默认访问修饰符,为什么关键字甚至需要?

.net c# private access-modifiers private-members

26
推荐指数
6
解决办法
3335
查看次数

如何在c#中迭代内部属性

public class TestClass
{
        public string property1 { get; set; }
        public string property2 { get; set; }

        internal string property3 { get; set; }
        internal string property4 { get; set; }
        internal string property5 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我可以使用以下循环遍历属性,但它只显示公共属性.我需要所有的属性.

foreach (PropertyInfo property in typeof(TestClass).GetProperties())
{
    //do something
}
Run Code Online (Sandbox Code Playgroud)

c# reflection properties access-modifiers

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

Visual Studio 2022 中新 C# 类的默认访问修饰符

当我在 Visual Studio (C#) 中生成新类时,我希望将默认访问修饰符从“内部”更改为“公共”。例如:

public class Animal
{
}
Run Code Online (Sandbox Code Playgroud)

代替:

internal class Animal
{
}
Run Code Online (Sandbox Code Playgroud)

Visual Studio (2022) 中是否有可以设置新类的默认访问修饰符的设置?

access-modifiers visual-studio

25
推荐指数
3
解决办法
6845
查看次数

C#private,static和readonly

我正在审查log4net的一些代码,我遇到了这个.

private static readonly ILog logger = LogManager.GetLogger(typeof(AdminClient));
Run Code Online (Sandbox Code Playgroud)

我想知道为什么你需要私有静态只读.

从我的理解私有意味着变量不能在类外使用,除非有一个访问器方法或获取属性.

static意味着变量仅在此文件中作用域.

readonly意味着您只能从值中读取并且无法分配它.

所以,我在想那个编写这段代码的人.声明它是私有的,因为他们不希望它在类外使用和静态,因此不希望它在文件外部使用.但是,如果有一个get属性会静态阻止这种形式发生.

我想我只能理解readonly,而且只能读取和设置值.

非常感谢任何建议,

c# log4net access-modifiers

24
推荐指数
3
解决办法
9612
查看次数

Java构造函数的默认访问修饰符

任何人都可以解释默认访问修饰符对于显式无参数构造函数(以及其他构造函数)的作用吗?

java constructor access-modifiers

24
推荐指数
3
解决办法
4万
查看次数

非静态方法可以修改静态变量

我想知道非静态方法如何修改静态实例变量.我知道静态方法只能访问其他静态方法和静态变量.但是,另一方是真的吗?非静态方法可以只访问非静态变量吗?例如:

public class SampleClass {
  private static int currentCount = 0;

  public SampleClass() {
    currentCount++;
  }

  public void increaseCount() {
    currentCount++;
  }
}
Run Code Online (Sandbox Code Playgroud)

这段代码编译,我想知道为什么在静态访问权限方面.

java methods static access-modifiers instance-variables

24
推荐指数
3
解决办法
8万
查看次数

私有类作为公共方法的返回类型

为什么这个有效?

Foo.java

public class Foo {

    public Bar getBar() {
        return new Bar();
    }

    private class Bar {}

}
Run Code Online (Sandbox Code Playgroud)

如果Bar是私有的,那么这个类的用户将如何使用此方法?当然可以使用多态,但这不应该是无效的,并且声明应该指出这是返回一个对象吗?

java polymorphism access-modifiers

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


静态,内部和公共构造函数之间有什么区别?

静态,内部和公共构造函数之间有什么区别?为什么我们需要一起创建所有这些?

 static xyz()
 {
 }

 public xyz()
 {
 }

 internal xyz()
 {
 }
Run Code Online (Sandbox Code Playgroud)

c# static constructor access-modifiers

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

Android Studio:房间数据库实现上出现“尝试分配较弱的访问权限”错误

我正在尝试实现房间数据库,我已经完成了官方网站上的步骤,“AppDatabase.java”文件如下:

import android.content.Context;
import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;

@Database(entities = {User.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {

    public static AppDatabase instance;
    public static synchronized AppDatabase getInstance(Context context){
        if (instance==null){
            instance = Room.databaseBuilder(context.getApplicationContext(),
                    AppDatabase.class, "app_database").fallbackToDestructiveMigration().build();
        }
        return instance;
    }
}
Run Code Online (Sandbox Code Playgroud)

以及我用于房间的依赖项:

    // Room Database
    def room_version = "2.4.2"

    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version"

    // optional - RxJava2 support for Room
    implementation "androidx.room:room-rxjava2:$room_version"

    // optional - RxJava3 support for Room
    implementation "androidx.room:room-rxjava3:$room_version"

    // optional - Guava …
Run Code Online (Sandbox Code Playgroud)

java android access-modifiers android-room

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