小编Rol*_*ter的帖子

有没有办法引用链中的最后一个表达式作为函数中的参数(C#)

嗨,我有以下代码:

log.Entry = (newEntry ?? "").Substring(0,Math.Min((newEntry ?? "").Length, 50));
Run Code Online (Sandbox Code Playgroud)

log.Entry是nvarchar(50)的数据库字段所以我想做的是限制到最多50个字符,但也有一个空检查所以我不尝试在null上运行字符串函数,这可能会抛出异常.(?)

我的问题是第二个(newEntry ??"")可以被某种运算符简化吗?这已经评估过一次,可能不需要再次评估.我正在寻找一个单行,所以它就像一个lambda风格的语法.(但我猜不是真正的lambda).

c# c#-4.0

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

如何在 Identity ASP.NET Core 2.1 (Identity Scaffolded) 中植入用户角色

当身份被构建时,如何为“管理员”用户角色设定种子?

我想通过电子邮件查找我的高级用户帐户并设置管理员角色。我发现的大多数示例都使用Startup.cs,但您应该使用它IdentityHostingStartup.cs来注册与身份相关的服务。

那么,/我如何注入RoleManagerUserManagerIdentityHostingStartup?(我假设这就是我需要的,请让我知道是否有更好的方法)

  public class IdentityHostingStartup : IHostingStartup
  {
        public void Configure(IWebHostBuilder builder)
        {
            builder.ConfigureServices((context, services) => {
                services.AddDbContext<MyWebContext>(options =>
                    options.UseSqlServer(
                        context.Configuration.GetConnectionString("MyWebContextConnection")));

                services.AddIdentity<MyWebUser, MyWebRole>()
                    .AddRoles<MyWebRole>()
                    .AddRoleManager<RoleManager<MyWebRole>>()
                    .AddDefaultUI()
                    .AddEntityFrameworkStores<MyWebContext>();

                services.Configure<IdentityOptions>(options => {
                    options.Password.RequireNonAlphanumeric = false;
                    });
            });
        }
  }
Run Code Online (Sandbox Code Playgroud)

c# asp.net-identity asp.net-core

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

如何声明最近将在 Kotlin 中初始化的属性?

如何在 MainActivity 中为 ListView 全局设置我的 ArrayAdapter ?

我的代码是:

class MainActivity : AppCompatActivity() {

var listItems = ArrayList<String>()
private var listAdapter: ArrayAdapter<String>? = null


override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    setSupportActionBar(toolbar)

    listAdapter = ArrayAdapter(
        this,
        android.R.layout.simple_list_item_1,
        listItems
    )
    listfield.adapter = listAdapter
    listAdapter.add("Hello World!")
    listAdapter.add("RFID app")
Run Code Online (Sandbox Code Playgroud)

所以问题是这会在编译时出现错误: 智能转换为 ArrayAdapter 是不可能的,因为 'listAdapter' 是一个可变属性,此时可能已更改。 这是因为无法知道在调用 .Add 时另一个线程是否已将 listAdapter 设置回 null。

我需要 listAdapter 是全局的,因为我需要从回调函数中调用 .notifyDataSetChanged()(当条形码阅读器读取条形码时),如果我在 onCreate() 中声明 listAdapter,它不可用回调函数。所以它必须是一个属性。Kotlin 抱怨属性必须被初始化或声明为“抽象”。显然“抽象”在这里不起作用,但我不能将它初始化为“null”以外的其他形式,因为初始化需要上下文,并且上下文在 onCreate() 之前不可用。在 Kotlin 中如何处理这个问题?

android kotlin

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

标签 统计

c# ×2

android ×1

asp.net-core ×1

asp.net-identity ×1

c#-4.0 ×1

kotlin ×1