小编Yor*_*iev的帖子

是否可以在编译期间(而不是运行时)在C#中查询自定义属性

换句话说,如果每个类都没有("必须拥有")自定义属性(例如作者和版本),是否可以创建甚至不编译的程序集(假设检查代码未被删除)?

这是我在运行时查询时使用的代码:

using System;
using System.Reflection;
using System.Collections.Generic; 


namespace ForceMetaAttributes
{

    [System.AttributeUsage ( System.AttributeTargets.Method, AllowMultiple = true )]
    class TodoAttribute : System.Attribute
    {
        public TodoAttribute ( string message )
        {
            Message = message;
        }
        public readonly string Message;

    }

    [System.AttributeUsage ( System.AttributeTargets.Class |
        System.AttributeTargets.Struct, AllowMultiple = true )]
    public class AttributeClass : System.Attribute
    {
        public string Description { get; set; }
        public string MusHaveVersion { get; set; }


        public AttributeClass ( string description, string mustHaveVersion ) 
        {
            Description = description; …
Run Code Online (Sandbox Code Playgroud)

c# custom-attributes

21
推荐指数
1
解决办法
7327
查看次数

如何在Perl中管理配置文件?

我有一个程序必须从PHP脚本中读取配置文件,快速搜索显示有很多方法可以处理Perl中的配置文件:

Brian 在这里提供了一个概述.

Config :: Simple对我有用,因为现有文件类似于INI.我有兴趣知道人们经常在他们的代码中使用什么样的风格?

perl configuration

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

建议一个好的实体关系图构建工具偶尔使用?

免费软件是一个加号.你能用一句话描述为什么偶尔使用它应该足够好吗?

编辑:您可以查看这个很酷的链接,提供有关实体关系图和工具的更多信息

编辑:对于选择的答案几个提示 - 单击实体,即使它看起来像圆圈并键入名称并输入 - 它将为您提供实体框 - 单击关联,Ctrl + L将为您提供好的线条

diagram database-design entity-relationship

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

按ESC键时关闭对话框

当用户按下键盘上的ESC键时,如何在没有激活器的情况下关闭打开的对话框

vue.js vuejs2 vuetify.js

14
推荐指数
3
解决办法
6511
查看次数

Scala功能设计模式目录

从一周开始,我正在阅读Scala编程.作者逐步介绍了语言的元素,但是我仍然很困惑何时使用演员,闭包,currying等功能性的东西......

我正在寻找功能结构的典型用例或最佳实践的目录.

我并不是说像Scala那样重新实现像GoF这样众所周知的模式

design-patterns functional-programming scala

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

使用软件设计模式有哪些实际经验?

维基百科对各种设计模式有一个很好的总结.您在实践中最多使用了哪些,您的经历是什么?什么时候应该去找一个模式,什么时候不去?

编辑:一个很酷的基于C#的链接与实际的DP示例(tnx到Mladen Mihajlovic)

architecture design-patterns

9
推荐指数
2
解决办法
676
查看次数

您最喜欢的小型实用程序(工具)有哪些帮助您进行编程?

它们如何帮助您改进编程?他们可以集成到IDE中,如果是,如何?

编辑:感谢altCognito在命名之前几乎有重复的问题: 你的实用程序中有什么东西**."最重要",因为列表中没有提供每个工具究竟是什么的简短说明编辑:如果这个问题仍然存在并且您想要添加新工具,请根据工具的受欢迎程度

一个简单的工具列表

  • grep用于强大的文本搜索
  • ArsClip - 它记住ClipBoard中最后n个条目.快捷键组合Ctrl + Shift + Z,2为您提供Windows剪贴板中最后复制的第二个文本(或对象).从来没有听说过它在VS中以某种方式使用过,我也没有错过这样的集成......
  • Process Explorer - 用于杀死不需要的进程(例如VS Team Services帮助)+在Windows上大量掌握整个系统信息
  • Paint.NET - 经常使用它来编写或调整图形(Visual Studio提供了一些不错的图形编辑方式).Paint.NET非常适合制作透明的PNG或GIF - 单击"魔术棒"工具选择要透明的区域,然后单击"删除".

您可以在我的博客上找到更广泛的列表 ......

utilities

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

有什么建议可以跟踪并避免循环中的错误?

我刚刚发现......再次......一个实时浪费的错误如下

for (int i = 0; i < length; i++)
{ //...Lots of code 
    for (int j = 0; i < length; j++)
    {
        //...Lots of code 
    }
}
Run Code Online (Sandbox Code Playgroud)

你有没有注意到内在的那个应该是j?我也没有.所以从现在开始我将使用:

for (int i = 0; i < length; i++)
{
    for (int i1 = 0; i1 < length; i1++)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

对于内部和外部while和for循环,您有什么提示?

编辑:感谢您的宝贵回复.以下是建议提示的简短摘要:

  • 为索引变量使用有意义的变量名称(而不是使用SomeObjCollectionLength)
  • 将内部循环的内容放入一个单独的方法,并从外部循环调用该方法
  • 外部和内部循环之间不可管理的代码行数是代码气味的强烈信号
  • 避免复制粘贴和匆忙,小心写下索引变量

你可能想通过检查总结LBushkin以下

  • 尽可能使用foreach和迭代器
  • 在进入循环之前初始化变量
  • 使每个循环只执行一个功能.避免在一个循环中混合责任
  • 如果可能,请使您的循环足够短以便一次查看所有循环

loops for-loop while-loop

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

在配置读取期间分配任何val scala pureconfig

我知道这违反了Scala pureconfig的本质......但是......使用scala pureconfig配置读取这个case类甚至是可行的,所以它不是为构造函数提供强类型值(作为String)参数"variable"有任何类型或至少String,Integer,Double,Array [Strings],Array [Integer],Array [Double].

  case class Filter(
  field: String,
  operator: String,
  variable: String  // should support Int , Double , List[String], List[Int]
  )
Run Code Online (Sandbox Code Playgroud)

据我所知,CoProductHint和Custom Reader方法都不会起作用......

types scala typesafe pureconfig

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