考虑"私有"是类成员的默认访问修饰符,为什么关键字甚至需要?
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) 当我在 Visual Studio (C#) 中生成新类时,我希望将默认访问修饰符从“内部”更改为“公共”。例如:
public class Animal
{
}
Run Code Online (Sandbox Code Playgroud)
代替:
internal class Animal
{
}
Run Code Online (Sandbox Code Playgroud)
Visual Studio (2022) 中是否有可以设置新类的默认访问修饰符的设置?
我正在审查log4net的一些代码,我遇到了这个.
private static readonly ILog logger = LogManager.GetLogger(typeof(AdminClient));
Run Code Online (Sandbox Code Playgroud)
我想知道为什么你需要私有静态只读.
从我的理解私有意味着变量不能在类外使用,除非有一个访问器方法或获取属性.
static意味着变量仅在此文件中作用域.
readonly意味着您只能从值中读取并且无法分配它.
所以,我在想那个编写这段代码的人.声明它是私有的,因为他们不希望它在类外使用和静态,因此不希望它在文件外部使用.但是,如果有一个get属性会静态阻止这种形式发生.
我想我只能理解readonly,而且只能读取和设置值.
非常感谢任何建议,
任何人都可以解释默认访问修饰符对于显式无参数构造函数(以及其他构造函数)的作用吗?
我想知道非静态方法如何修改静态实例变量.我知道静态方法只能访问其他静态方法和静态变量.但是,另一方是真的吗?非静态方法可以只访问非静态变量吗?例如:
public class SampleClass {
private static int currentCount = 0;
public SampleClass() {
currentCount++;
}
public void increaseCount() {
currentCount++;
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码编译,我想知道为什么在静态访问权限方面.
为什么这个有效?
Foo.java
public class Foo {
public Bar getBar() {
return new Bar();
}
private class Bar {}
}
Run Code Online (Sandbox Code Playgroud)
如果Bar是私有的,那么这个类的用户将如何使用此方法?当然可以使用多态,但这不应该是无效的,并且声明应该指出这是返回一个对象吗?
不确定为什么禁用资源文件的Access Modifier下拉列表.
替代文字http://img683.imageshack.us/img683/9157/accessmodifier.png
这是文件属性:
alt text http://img199.imageshack.us/img199/3930/resxprop.png
静态,内部和公共构造函数之间有什么区别?为什么我们需要一起创建所有这些?
static xyz()
{
}
public xyz()
{
}
internal xyz()
{
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试实现房间数据库,我已经完成了官方网站上的步骤,“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) access-modifiers ×10
c# ×4
java ×4
constructor ×2
static ×2
.net ×1
android ×1
android-room ×1
asp.net ×1
log4net ×1
methods ×1
polymorphism ×1
private ×1
properties ×1
reflection ×1
resx ×1