问题列表 - 第20957页

我可以使用点表示法来访问字典值吗?

我正在使用Dictionary<string, string>作为乐器的配置,对于那些对编程知之甚少的用户来说,能够从Visual Studio中获得自动完成功能会更容易.

在Python中,我可以创建一个Dictionary并使用点运算符访问不同的值.

d = {'name':'Joe', 'mood':'grumpy'}
d.name
d.mood
Run Code Online (Sandbox Code Playgroud)

C#有办法做到这一点吗?

我意识到所有涉及的问题,因为字典只是一个通用集合(如何通用?它只是一个KeyValuePairs列表?有趣的问题).我不打算为此完成它的包装类(我希望它比使用自定义类的显式属性更灵活).

c#

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

如何在Python中每60秒异步执行一个函数?

我想在Python上每60秒执行一次函数,但我不希望同时被阻塞.

我该如何异步进行?

import threading
import time

def f():
    print("hello world")
    threading.Timer(3, f).start()

if __name__ == '__main__':
    f()    
    time.sleep(20)
Run Code Online (Sandbox Code Playgroud)

使用此代码,函数f在20秒time.time内每3秒执行一次.最后它给出了一个错误,我认为这是因为threading.timer还没有被取消.

我该如何取消?

提前致谢!

python asynchronous function call

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

C#Static class vs struct用于预定义字符串

一位同事刚刚在C#中创建了以下构造(示例代码已经简化).他的目标是缩短其余代码中所有预定义字符串的表示法.

public struct PredefinedStrings
{
    public const string VeryLongName = "Very Long Name";
    public const string AnotherVeryLongName = "Another Very Long Name";
    public const string TheLastVeryLongName = "The Last Very Long Name";
}

public static void MethodThatUsesTheNames()
{
    Console.WriteLine(PredefinedStrings.VeryLongName);
    Console.WriteLine(PredefinedStrings.AnotherVeryLongName);
    Console.WriteLine(PredefinedStrings.TheLastVeryLongName);
}
Run Code Online (Sandbox Code Playgroud)

虽然它似乎对他来说很好,但我不禁想知道他是否应该使用静态类而不是结构,或者是否有更优雅的方法来实现这一点.

这样做的首选方法是什么?还请解释原因.

c# string struct static-classes

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

Outlook VBA - 获取当前活动(或开放)电子邮件的详细信息

我完全不知道如何检索当前选中或打开的电子邮件的详细信息.事实上,我找不到有关如何访问电子邮件的任何细节.看来你可以遍历整个文件夹结构并获取所有电子邮件,但这对我没有帮助.

我不认为我可以得到一些指示?

是的,我和下一个开发人员一样讨厌VBA,但不幸的是,我的工作中有0.1%涉及与Outlook的集成.

干杯.

outlook vba

15
推荐指数
1
解决办法
3万
查看次数

在Clojure中使用命名空间的常见约定是什么?

我在Clojure中找到使用命名空间的好建议和常用做法时遇到了麻烦.我意识到命名空间与Java包不同,所以我试图梳理Clojure中的约定,这似乎很难确定.

我想我非常清楚如何将函数分成clj文件,甚至大致如何将这些文件组织到目录中.但除此之外,我无法为我的开发环境找到机制.一些相互关联的问题:

  1. 对于Clojure命名空间,我是否使用与通常用于Java包的相同的唯一性约定?[即backwards-company-domain.project.subsystem]
  2. 我应该将文件保存在与我的命名空间匹配的目录结构中吗?[ala Java]
  3. 如果我有多个名称空间,是否需要将所有代码编译到jar中并将其添加到我的类路径中以使其可访问?
  4. 每个命名空间应该编译成一个jar吗?或者我应该创建一个包含来自许多名称空间的clj代码的jar?

谢谢...

namespaces conventions clojure project-organization

50
推荐指数
2
解决办法
6554
查看次数

iBatis 3 - JNDI 配置示例

iBatis 框架在版本 2 和 3 之间进行了重大调整,甚至配置文件(现在通常称为 MapperConfig.xml)也有所不同。

话虽如此,网上有很多关于如何使用 iBatis 创建 JDBC 连接池的示例,但我找不到关于如何使用 JNDI 创建的示例。有一个更新的用户指南:http://svn.apache.org/repos/asf/ibatis/java/ibatis-3/trunk/doc/en/iBATIS-3-User-Guide.pdf确实参考了第 19 页上的 JNDI 设置,但我仍然无法让它与数据库正确通信。

非常感谢 iBatis 3 中 JDNI(容器管理连接池)的工作示例!!

jndi ibatis jdbc jakarta-ee

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

如何获得泛型课程

Class Model<T>{

   private T t;

   .....


   private void someMethod(){
       //now t is null
       Class c = t.getClass();
   } 

   .....

}
Run Code Online (Sandbox Code Playgroud)

当然它会引发NPE.

Class c = t.getClass();
Run Code Online (Sandbox Code Playgroud)

如果我的实例为null,我应该使用什么语法来获取T的类?可能吗?

java generics syntax

3
推荐指数
1
解决办法
544
查看次数

为用户定义的类型重载全局交换

C++标准禁止在命名空间中声明类型或定义任何内容std,但它允许您为用户定义的类型专门化标准STL模板.

通常,当我想专注std::swap于我自己的自定义模板类型时,我只是这样做:

namespace std
{
  template <class T>
  void swap(MyType<T>& t1, MyType<T>& t2)
  {
     t1.swap(t2);
  }
}
Run Code Online (Sandbox Code Playgroud)

......这很好.但我不完全确定我的惯常做法是否符合标准.我这样做了吗?

c++ standards swap stl

12
推荐指数
1
解决办法
4235
查看次数

多次使用属性时的性能考虑因素

我在使用CultureInfo.CurrentCulture时形成我的字符串时使用string.format

引用此博客

这只是暗示如果您经常使用CurrentCulture,可能值得将其读入私有变量而不是大量调用CultureInfo.CurrentCulture,否则您将不必要地耗尽时钟周期.

所以这个作者

var culture = CultureInfo.CurrentCulture
string.Format(culture,"{0} some format string","some args");
string.Format(culture,"{0} some format string","some other args");
Run Code Online (Sandbox Code Playgroud)

比...更好

string.Format(CultureInfo.CurrentCulture,"{0} some format string","some args");
string.Format(CultureInfo.CurrentCulture,"{0} some format string","some other args");
Run Code Online (Sandbox Code Playgroud)

根据MSDN,CultureInfo.CurrentCulture是一个属性

多次访问属性时是否存在性能损失?

我还做了一些经验分析,我的测试表明,使用局部变量比直接使用属性更昂贵.

Stopwatch watch = new Stopwatch();

            int count = 100000000;
            watch.Start();
            for(int i=0;i<count;i++)
            {
                string.Format(CultureInfo.CurrentCulture, "{0} is my name", "ram");
            }


            watch.Stop();
                 //EDIT:Reset watch
                 watch.Reset();


            Console.WriteLine(watch.Elapsed);
            Console.WriteLine(watch.ElapsedMilliseconds);
            Console.WriteLine(watch.ElapsedTicks);


            Console.WriteLine("--------------------");
            var culture = CultureInfo.CurrentCulture;
            watch.Start();
            for (int i=0; i < count; i++)
            { …
Run Code Online (Sandbox Code Playgroud)

c# optimization performance properties

5
推荐指数
2
解决办法
449
查看次数

asp.NET MVC 2 DataAnnotations UpdateModel <T>验证

我正在尝试使用DataAnnotations在asp.NET MVC 2 RC2中为我的模型添加验证,使用TryUpdateModel

        var user = UserManager.Find(id);

        this.TryUpdateModel<IProvisioningObject>(user, form.ToValueProvider());
Run Code Online (Sandbox Code Playgroud)

这会更新模型,但永远不会调用验证.我也尝试使用TryUpdateModel(这是用户的直接类型),不使用表单值提供程序,直接使用ProvisioningObject(具有验证元数据),无济于事.

谷歌搜索示例仅为我提供了通过参数绑定来使用DataAnnotations的方法

public ActionResult Update(User user)
Run Code Online (Sandbox Code Playgroud)

我不喜欢更新方案.

任何提示和/或解决方案?

编辑 我的对象是来自WCF服务的自动生成的对象.

我做了部分能够添加DataAnnotations.我调用TryUpdateModel三次,因为它显然不支持继承,我认为这也是我对DataAnnotations的问题.我为ProvisioningObject指定了验证属性,绑定不会查找类似的继承内容.

[MetadataType(typeof(ProvisioningObjectMetadata))]
public partial class ProvisioningObject : IProvisioningObject
{
    public string DisplayNameInvariant { get { return string.IsNullOrEmpty(this.DisplayName) ? this.Name : this.DisplayName; } }
}


[MetadataType(typeof(UserMetadata))]
public partial class User : IUser
{
}


public class ProvisioningObjectMetadata
{
    [DisplayName("Country")]
    public string CountryIsoCode { get; set; }

    [Required(ErrorMessageResourceType = typeof(Properties.Validation), ErrorMessageResourceName = "DisplayNameIsRequired")]
    [TempValidator]
    public string DisplayName { get; set; }
} …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc updatemodel data-annotations

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