小编Wal*_*t W的帖子

如何在C中实现"私有/限制"功能?

在C采访中我被问到一个非常有趣的问题:如何以一种只能从特定的g()函数调用它的方式实现函数f().如果g()以外的函数试图调用f(),则会导致编译器错误.

起初,我虽然可以使用函数指针完成,但我可以在运行时接近阻塞调用.但我无法想到编译时策略.我甚至不知道使用ansi C是否可行.

有谁有想法吗?

c function-pointers function

28
推荐指数
5
解决办法
4万
查看次数

C#模仿Python字典语法的方式

有没有一种很好的方法在C#中模仿以下python语法:

mydict = {}
mydict["bc"] = {}
mydict["bc"]["de"] = "123";  # <-- This line
mydict["te"] = "5";          # <-- While also allowing this line
Run Code Online (Sandbox Code Playgroud)

换句话说,我想要[]样式访问的东西可以返回另一个字典或字符串类型,具体取决于它的设置方式.

我一直试图用自定义类来解决这个问题,但似乎无法成功.有任何想法吗?

谢谢!

编辑:我知道,我是邪恶的.Jared Par的解决方案很棒...对于此表单的2级字典.但是,我也对进一步的水平感到好奇...例如,

mydict["bc"]["df"]["ic"] = "32";
Run Code Online (Sandbox Code Playgroud)

等等.关于那个的任何想法?

编辑3:

这是我最终使用的最后一堂课:

class PythonDict {
    /* Public properties and conversions */
    public PythonDict this[String index] {
        get {
            return this.dict_[index];
        }
        set {
            this.dict_[index] = value;
        }
    }

    public static implicit operator PythonDict(String value) {
        return new PythonDict(value);
    }

    public static implicit operator String(PythonDict value) {
        return …
Run Code Online (Sandbox Code Playgroud)

c# python syntax dictionary types

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

C#/ Silverlight/WPF /快速渲染大量的圆圈

我想尽可能快地和频繁地在silverlight或wpf(大约1000-10000)内渲染很多圆圈或小图形.如果我必须转到DX或OGL,那很好,但我想知道在这两个框架中的任何一个中首先执行此操作(读取:如果答案仅限WPF或仅限Silverlight,则可以.)此外,如果有办法通过WPF访问DX并在表面上渲染,我也会对此感兴趣.

那么,绘制大量圆圈的最快方法是什么?它们可以尽可能简单,但它们确实需要半径.目前我正在为每个圆使用DrawingVisual和DrawingContext.DrawEllipse()命令,然后将视觉渲染到RenderTargetBItmap,但随着圆圈数量的增加它变得非常慢.

顺便说一句,这些圈子每一帧移动,所以除非你打算建议缓存各个圈子,否则缓存不是一个真正的选择...但它们的尺寸是动态的,所以我不确定这是一个很好的方法.

c# silverlight wpf graphics

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

在postgres中使用LIMIT时未使用的索引

我有一个带有索引的单词表(language_id,state).以下是EXPLAIN ANALYZE的结果:

没有限制

explain analyze SELECT "words".* FROM "words" WHERE (words.language_id = 27) AND (state IS NULL);

Bitmap Heap Scan on words  (cost=10800.38..134324.10 rows=441257 width=96) (actual time=233.257..416.026 rows=540556 loops=1)
Recheck Cond: ((language_id = 27) AND (state IS NULL))
->  Bitmap Index Scan on ls  (cost=0.00..10690.07 rows=441257 width=0) (actual time=230.849..230.849 rows=540556 loops=1)
Index Cond: ((language_id = 27) AND (state IS NULL))
Total runtime: 460.277 ms
(5 rows)
Run Code Online (Sandbox Code Playgroud)

限制100

explain analyze SELECT "words".* FROM "words" WHERE (words.language_id = 27) AND (state IS …
Run Code Online (Sandbox Code Playgroud)

sql postgresql indexing

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

Typescript strictNullChecks,范围有限

我正在使用带有Typescript的Ionic v2 beta,并且很乐意使用它--strictNullChecks.然而,我的项目的相关性,比如@角/核心,当我把原因编译错误strictNullChecks: true在我tsconfig.json.

有没有办法将目录/文件/模块/类声明为遵守strictNullChecks,即使整个项目无法使用标志进行编译?

看起来,由于--strictNullChecks不是默认值,因此在没有标志的情况下编写的依赖项将使用极其有限(尽管是一个非常有用的功能).

typescript

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

C#System.Windows.Forms.TreeView:双击停止自动展开/折叠(并执行另一个处理程序)

是否有一种简单的方法可以在双击时禁用TreeView节点的自动展开/折叠?如果当前系统时间与双击所预期的系统时间匹配,我一直无法找到这个问题的答案,如果没有检查BeforeExpand/BeforeCollapse,那么这个问题仍然有效 - 覆盖OnNodeMouseDoubleClick和/或OnDoubleClick似乎不够.

或者,检查系统时间,看它是否适合双击唯一的方法来做到这一点?

谢谢你的帮助,-Walt

c# windows treeview

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

Git for Websites/post-receive/Separation of Test and Production Sites

我正在使用Git来管理我的网站的源代码和部署,目前在同一个盒子上运行测试和实时网站.最初在这个资源http://toroid.org/ams/git-website-howto之后,我想出了以下post-receive钩子脚本来区分推送到我的实时站点并推送到我的测试站点:

while read ref
do
  #echo "Ref updated:"
  #echo $ref -- would print something like example at top of file
  result=`echo $ref | gawk -F' ' '{ print $3 }'`
  if [ $result != "" ]; then
    echo "Branch found: "
    echo $result
    case $result in
      refs/heads/master )
        git --work-tree=c:/temp/BLAH checkout -f master
        echo "Updated master"
        ;;
      refs/heads/testbranch )
        git --work-tree=c:/temp/BLAH2 checkout -f testbranch
        echo "Updated testbranch"
        ;;
      * )
        echo "No update known for $result"
        ;;
    esac …
Run Code Online (Sandbox Code Playgroud)

git website-deployment git-post-receive web

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

C#"枚举"序列化 - 反序列化为静态实例

假设您有以下课程:

class Test : ISerializable {

  public static Test Instance1 = new Test {
    Value1 = "Hello"
    ,Value2 = 86
  };
  public static Test Instance2 = new Test {
    Value1 = "World"
    ,Value2 = 26
  };

  public String Value1 { get; private set; }
  public int Value2 { get; private set; }

  public void GetObjectData(SerializationInfo info, StreamingContext context) {
    //Serialize an indicator of which instance we are - Currently 
    //I am using the FieldInfo for the static reference.
  }
} …
Run Code Online (Sandbox Code Playgroud)

c# enums serialization static

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