问题列表 - 第38274页

在数组中存储元素时,ILGenerator会发出Break指令

我正在使用ILGenerator.Emit生成动态类型.我正在生成一个方法体,它将方法参数的类型存储在一个数组中.为了实际存储数组中的元素,我循环遍历给定方法的参数并构建必要的IL来存储元素.在第二次迭代中,在Stelem.ref (下面的L_003d )指令之后出现Break 指令.这总是发生在第二次迭代,我无法弄清楚为什么.这是代码:

        ilGenerator.Emit(OpCodes.Ldc_I4, exampleMethod.GetParameters().Length);
        ilGenerator.Emit(OpCodes.Newarr, typeof(Type));
        ilGenerator.Emit(OpCodes.Stloc, typeArray);

        for (int idx = 0; idx < exampleMethod.GetParameters().Length; idx++)
        {
            ilGenerator.Emit(OpCodes.Ldloc, typeArray);
            ilGenerator.Emit(OpCodes.Ldc_I4, idx);
            ilGenerator.Emit(OpCodes.Ldarg, idx + 1);
            ilGenerator.Emit(OpCodes.Box, typeof(int));
            ilGenerator.EmitCall(OpCodes.Callvirt, typeof(object).GetMethod("GetType"), null);
            ilGenerator.Emit(OpCodes.Stelem_Ref, idx);//second iteration causes a break to be output in the IL
        }

        ilGenerator.Emit(OpCodes.Ret);
Run Code Online (Sandbox Code Playgroud)

并且IL输出在这里

.method public virtual instance int32 Add3(int32, int32, int32) cil managed
 {
.maxstack 3
.locals init (
    [0] class [mscorlib]System.Type[] typeArray)
L_0000: ldc.i4 3
L_0005: newarr [mscorlib]System.Type
L_000a: stloc.0 
L_000b: ldloc.0 …
Run Code Online (Sandbox Code Playgroud)

cil reflection.emit

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

创建一个简单的文本操作Visual Studio 2010扩展

我一直想为Visual Studio创建一个简单的文本操作扩展,现在我终于找到了一些时间来研究如何编写扩展.我想到的可以通过VBA宏来实现,但我宁愿将其作为"真正的"扩展来实现; 作为一个学习过程,因为我老实说不能忍受VBA.

经过大量的谷歌搜索,博客阅读,深入研究MSDN和浏览StackOverflow帖子后,我想我已经收集了足够的信息,我可以实现它 - 但我想在开始之前就是否正在接近事情的一些反馈劈开:)

我想要的是:

  1. 注册用户可以通过工具 - >选项 - >键盘绑定热键的命令.
  2. 调用命令时修改活动窗口的文本缓冲区.
  3. 我真的不关心菜单或工具栏,但知道如何通过.vsct文件添加它(有更好的选择吗?)

对于#1,似乎我必须完成一个完整的VSPackage,.vsct文件等等 - 我没有可以处理的简单易用的MEF扩展点吗?(也许是出口IWpfTextViewCreationListener和摆弄手动键盘快捷键处理 - 但这是一个主要的黑客攻击).

对于#2,我不确定如何获取ITextBuffer活动文档.我可以通过 DTE.ActiveDocument,但我不知道如何从中获得ITextBuffer.或者,我可以做一些......

var txtMgr = (IVsTextManager)ServiceProvider.GetService(typeof(SVsTextManager));
IVsTextView textViewCurrent;
txtMgr.GetActiveView(true, null, out textView);
IWpfTextView wpfViewCurrent = AdaptersFactory.GetWpfTextView(textView);
ITextBuffer textCurrent = wpfViewCurrent.TextBuffer;
Run Code Online (Sandbox Code Playgroud)

......但这确实看起来像是一种迂回的做事方式?

c# vsx mef visual-studio-2010

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

壁纸改变

我正在寻找正确的API来改变Windows 7初学者版壁纸

微软做了一些事情,以避免改变Windows背景壁纸

delphi winapi windows-7

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

android单选列表选择问题?

朋友们,

我正在使用以下代码显示带有单选按钮的列表现在我想默认选择列表的特定单选按钮,因此使用setSelection属性不起作用.

final String [] items=new String[]{"Item1","Item2","Item3","Item4"};
            ArrayAdapter<string> ad=new ArrayAdapter<string>(this,android.R.layout.simple_list_item_single_choice,items);
            list=(ListView)findViewById(R.id.List);
            list.setAdapter(ad);

list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
list.setSelection(2);
    list.setOnItemClickListener(new OnItemClickListener()
            {

       public void onItemClick(AdapterView arg0, View arg1, int arg2,
         long arg3) {
        // TODO Auto-generated method stub
        TextView txt=(TextView)findViewById(R.id.txt);
        txt.setText(list.getItemAtPosition(arg2).toString());


       }

            }
            );
Run Code Online (Sandbox Code Playgroud)

请指导我在做什么错误?

android listview

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

如何在netbeans中创建属性文件

我正在使用struts2 Web应用程序项目并使用netbeans 6.9.我想为我的项目创建一个属性文件.我如何在网豆中做到这一点........

java struts2 properties netbeans-6.9

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

如何使用复选框创建ListPreference

如何创建一个ListPreferencecheckbox?我知道如何使用ListPreference,但我需要在"重复"首选项的警报应用程序中进行多项选择.

像这个截图:

复选框

checkbox android preference listpreference

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

在我的情况下,我可以计算一个元素而不循环遍历所有前面的元素(参见问题正文)吗?

我有2个相同长度的双打阵列.数组a中填充了一些数据,数组b将被计算出来.

数组b的每个元素等于数组a中的对应值加上数组b中所有先前元素的加权和.

通过将所有这些元素相乘,每个元素乘以系数来计算加权和,该系数等于它与我们计算的当前元素的距离除以前一子集中的元素数.

为了实现这一点,我为我计算的每个元素循环遍历整个前面的子集.

这可以优化吗?我没有足够的数学技能,但我怀疑我只能使用前面的第一个元素来计算每一个元素,因为每个元素都已经从前面的集合中派生出来并且包含了已经加权的所有信息.也许我可以调整重量公式并获得相同的结果而无需第二级循环?

这似乎是Scala的一个例子(我不确定它是否正确: - ]).由于实际项目使用负指数,因此在上面写的任务方面将(1)和a(2)视为(0)之前.


import scala.Double.NaN
val a = Array[Double] (8.5, 3.4, 7.1, 5.12, 0.14, 5)
val b = Array[Double] (NaN, NaN, NaN, NaN, NaN, 5)
var i = b.length - 2
while (i >= 0) {
  b(i) = a(i) + {
    var succession = 0.0
    var j = 1
    while (i + j < b.length) {
      succession += b (i+j) * (1.0-j.toDouble/(b.length - i))
      j += 1
    }
    succession
  }
  i -= 1
}
b.foreach((n …
Run Code Online (Sandbox Code Playgroud)

java algorithm recursion scala algebra

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

如何在PHP中创建唯一的用户指纹

在PHP中生成用户唯一性的"指纹"的最佳方法是什么?

例如:

  1. 我可以使用用户的IP地址作为"指纹",但是,同一IP上可能有多个其他用户
  2. 我可以使用用户的IP +用户代理作为"指纹",但是,单个用户可以简单地从safari交换到firefox并再次被视为唯一

理想情况下,指纹标记"机器"而不是浏览器或"ip",但我想不出这是如何实现的.

随时了解您如何唯一识别用户的想法/建议,以及您的方法有哪些优点/缺点.

php statistics user-agent identifier fingerprint

24
推荐指数
3
解决办法
4万
查看次数

LGB范围规则和在Python中使用"self"

str2 = "Global"

class InClass:
 str2 = "Class"
 def Set(self, msg):
  self.str2 = msg
 def Print(self):
  print(str2)

g = InClass()
g.Set("Instance")
g.Print()
Run Code Online (Sandbox Code Playgroud)

如果我运行此代码,我会得到"全局".但我不明白为什么.

通过调用实例g的Set()方法,变量str2现在位于实例g的名称空间中.然后,遵循LGB范围规则,实例g的命名空间是第一个可以找到str2的命名空间!所以,结果应该是"实例".

这是错的吗?

python

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

在C#中使用XMLWriter创建大型xml

我试图使用XMLWriter创建一个包含大数据的xml,该函数执行时没有任何异常.但是当我打开XML时,我发现创建的XML不完整,它在中途被破坏.我不知道我做错了什么.是否有XMLWriter的默认大小限制?XMLWriter是创建大型XML的最佳方式吗?如果没有,请告诉我什么是创建大型xml的最佳方法?使用XDocument是否让我的生活更轻松?

这是我的代码结构(我不能把我的原始代码放在这里!! :()

using (//file stream)
{
     XmlWriter mywriter = new XmlWriter.Create(@"C:\mydata.xml");
       // write start element1
       // write start element2

                     while (//not end of file)
                    {
                    switch (entrytype)
                    {
                        Case 1:
                           // create elements
                        Case 2:
                           // create elements
                        so on ....
                    }
                    }

       // write end element2
       // write endelement1
}
Run Code Online (Sandbox Code Playgroud)

XML的大小预计为几百KB.

请回复..

c# xml

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