小编JYe*_*ton的帖子

有关IEnumerable和IEnumerator的问题

我使用以下代码使myClass使用foreach.但我对编程很新,并且在理解下面的代码时遇到了一些困难.我在评论中描述了我的问题.我很感激提供一些信息.

    public class MyClass : IEnumerable<string> 
    {  
    //1) What is IEnumerator for?
        // Whats the difference between IEnumerator and IEnumerable
    public IEnumerator<string> GetEnumerator()     
    {
             yield return "first";         
             yield return "second";     
    }      
    //2) What is it for?  It just calls above method 
   IEnumerator IEnumerable.GetEnumerator()
         {
             return GetEnumerator(); 
         } 
    }
   //3) Lastly what benefits I have from implementing genetic interface 
   //IEnumerable<string> instead of just IEnumerable
Run Code Online (Sandbox Code Playgroud)

.net c# ienumerable ienumerator

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

查看MySQL临时表 - 不在会话中

我目前有一个脚本正在运行,并且认为运行不会花这么长时间,脚本正在修改临时表.

我知道临时表只存在于当前会话中,但无论如何都要查看它们在会话外保存的数据吗?

原因是我想知道我的脚本将继续运行多长时间,如果我能看到临时数据,那么我就能弄明白.

mysql temp-tables

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

如何更改只读权限以设置MySQL服务器系统变量的新值

我是MySQL新手; 最近我在为系统变量设置新值时遇到了这个问题.

我试过了:

mysql> set global innodb_ft_min_token_size = 6;
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误:

ERROR 1238 (HY000): Variable 'innodb_ft_min_token_size' is a read only variable
Run Code Online (Sandbox Code Playgroud)

有没有办法改变只读权限?我读到了InnoDB参数,但无法解决问题.

mysql database system-variable

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

如何在评论中禁用(或更改)关键字突出显示?

我正在使用Visual Studio 2008和Resharper 5.0:

有一些关键字,如note,bugtodo那些我想禁用或至少改变高亮颜色和/或指定的关键字注释中突出显示.

但是,我无法在Visual Studio的"字体和颜色"选项中找到任何设置,也无法在Resharper的选项中找到更改此行为的任何设置.

任何人都可以指出这可以改变的方式和地点吗?

请参阅此相关问题:注释中的Visual Studio关键字突出显示

resharper syntax-highlighting visual-studio

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

如何在另一个对象中存储对象属性的引用?

这是一个C#winforms应用程序.

前言:

我正在创建一个表单,允许用户将现有MySql或SQL Server数据库中的数据导入到我的SQL Server数据库中.这允许用户快速导入IP地址和其他数据,而无需通过控件重新输入.

例:

简化,我有两个对象,FieldObjectSensorObject.FieldObject存在用于存储源和目标数据库字段名称和类型.SensorObject是我后来从数据库中的记录填充的对象.为简单起见,我省略了类型处理和与问题无关的其他功能.(数据DestinationField仅限于我提供给用户的列表,并且来自程序中的数组或列表.)以下是两个示例:

public class FieldObject
{
    public string DestinationField {get; set;}
    public string SourceField {get; set;}
}

public class SensorObject
{
    public string Name {get; set;}
    public string IPAddress {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

问题:

当用户填充各个字段时FieldObject,我使用该信息来填充目标数据库,尽管我有一个大的switch语句,它检查目标字段名称以了解SensorObject它所属的属性.

例如:

// Reader is a SqlDataReader with the prerequisite database connection
FieldObject myField = new FieldObject
    {
        DestinationField = "name",
        SourceField = "proprietary"
    };
SensorObject mySensor = …
Run Code Online (Sandbox Code Playgroud)

c# properties object winforms

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

如何使用Javascript删除XML命名空间?

我发现,就我的目的而言,XML名称空间只会引起很多麻烦并且完全没有必要.(例如,它们如何使xpath复杂化.)

有没有一种简单的方法可以从XML文档中完全删除命名空间?

(有一个相关的问题,但它与标签消除命名空间前缀,而不是从文档根目录命名空间声明涉及:" 放弃与JavaScript的XML命名空间的简单方法 ".)

编辑:示例和更多详细信息如下:

XML:

<?xml version="1.0" ?>
<main xmlns="example.com">
  <primary>
    <enabled>true</enabled>
  </primary>
  <secondary>
    <enabled>false</enabled>
  </secondary>
</main>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

function useHttpResponse()
{
    if (http.readyState == 4)
    {
        if(http.status == 200)
        {
            var xml = http.responseXML;
            var evalue = getXMLValueByPath('/main/secondary/enabled', xml);
            alert(evalue);
        }
    }
}

function getXMLValueByPath(nodepath, xml)
{
    var result = xml.evaluate(nodepath, xml, null, XPathResult.STRING_TYPE, null).stringValue;
    return result;
}
Run Code Online (Sandbox Code Playgroud)

示例XML就像我正在使用的实际XML一样,虽然要短得多.请注意,命名空间的标记上没有前缀.我假设这是null或默认命名空间.

JavaScript是我的ajax函数的一个片段.如果我xmlns="example.com"main标签中删除该部分,我可以成功获取该值.只要存在任何名称空间,该值就变为未定义.

编辑2:

值得一提的是,XML标记中实际上没有使用任何声明的命名空间(如上面的示例).在我正在使用的实际XML文件中,声明了三个名称空间,但没有标记以名称空间引用为前缀.因此,也许这个问题应该重新命名为"如何使用Javascript删除未使用的XML命名空间?" 我没有看到保留命名空间的原因,如果它是1)从未使用过,2)使用xpath复杂到一个节点的简单路径.

javascript xml xml-namespaces

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

从程序生成机器代码时,它如何转换为硬件级操作?

就像说指令是这样的100010101 1010101 01010101 011101010101.现在,这是如何转化为从内存中删除内容的实际工作?存储器由HOLD数据的实际物理晶体管组成.导致他们丢失数据的原因是一些外部信号?

我想知道该信号是如何产生的.就像一些二进制数字如何改变物理晶体管的状态一样.是否存在超出机​​器代码的级别,程序员无法明确看到它?我听说过在硬件级别处理代码的微代码,甚至低于汇编语言.但我仍然不明白.谢谢!

hardware assembly programming-languages

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

如何从TINYINT(1)列中检索int值而不是布尔值?

我有一个MySQL列指定为:

`type` TINYINT(1) NOT NULL DEFAULT '0'
Run Code Online (Sandbox Code Playgroud)

该列的目的是存储一个不超过127的整数值,因为预计不会超过极少数的对象"类型".

我在其中一行中存储了'2'.

使用SqlYog,简单SELECT type FROM table得到正确的结果,2.

但是,使用Connector/Net 6.1.2(不可否认它有点过时,因为当前版本是6.5.4),会发生以下情况:

var Temp = Reader["type"].GetType(); // equals "Boolean"
Run Code Online (Sandbox Code Playgroud)

这种类型的列通常用于布尔值,但在这种情况下,我想要得到的整数值.以下未能产生预期结果:

int i = Reader.GetInt32("type"); // equals 1 (should be 2)
Run Code Online (Sandbox Code Playgroud)

在.NET应用程序中使用Connector/Net从TINYINT(1)列获取int值的正确方法是什么?

这是使用MySQL版本5.5.16

.net mysql

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

绑定到SqlDataAdapter时如何确定DataGridView是否包含未提交的更改

我有一个包含DataGridView,BindingSource,DataTable和SqlDataAdapter的表单。我按如下所示填充网格和数据绑定:

private BindingSource bindingSource = new BindingSource();
private DataTable table = new DataTable();
private SqlDataAdapter dataAdapter = new SqlDataAdapter("SELECT * FROM table ORDER BY id ASC;", ClassSql.SqlConn());
private void LoadData()
{
    table.Clear();
    dataGridView1.AutoGenerateColumns = false;
    dataGridView1.DataSource = bindingSource;
    SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
    table.Locale = System.Globalization.CultureInfo.InvariantCulture;
    dataAdapter.Fill(table);
    bindingSource.DataSource = table;
}
Run Code Online (Sandbox Code Playgroud)

然后,用户可以对数据进行更改,然后分别单击保存或取消按钮来提交更改或放弃更改。

private void btnSave_Click(object sender, EventArgs e)
{
    // save everything to the displays table
    dataAdapter.Update(table);
}

private void btnCancel_Click(object sender, EventArgs e)
{
    // alert user if unsaved …
Run Code Online (Sandbox Code Playgroud)

c# sql winforms

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

如何通过路径检索特定XML节点的值?

我正在寻找这个问题的Javascript解决方案:

我有一个XML文档,它通过典型的AJAX方法加载:

var xml = http.responseXML;

请考虑以下示例xml片段:

<main>
    <primary>
         <enabled>true</enabled>
     </primary>
     <secondary>
         <enabled>true</enabled>
     </secondary>
 </main>
Run Code Online (Sandbox Code Playgroud)

我想通过指定路径获取节点的值,如下所示:

var second_enabled = getNodeValueByPath('main/secondary/enabled', xml);
Run Code Online (Sandbox Code Playgroud)

做这样的事情我找不到任何简洁的方法.我似乎被迫在使用之后迭代节点集合getElementsByTagName等.

我将如何构造该方法,getNodeValueByPath或者在Javascript中是否有一些允许这样做的构造?

我不熟悉Javascript.

编辑:这是一个示例,显示我尝试使用XPath及其失败的方式:

XML:

<?xml version="1.0" ?>
<main xmlns="example.com">
  <primary>
    <enabled>true</enabled>
  </primary>
  <secondary>
    <enabled>false</enabled>
  </secondary>
</main>
Run Code Online (Sandbox Code Playgroud)

JavaScript :(这些只是相关的功能)

function useHttpResponse()
{
    if (http.readyState == 4)
    {
        if(http.status == 200)
        {
            var xml = http.responseXML;
            var evalue = getXMLValueByPath('/main/secondary/enabled', xml);
            alert(evalue);
        }
    }
}

function getXMLValueByPath(nodepath, xml)
{
    var result = xml.evaluate(nodepath, xml, …
Run Code Online (Sandbox Code Playgroud)

javascript xml xpath

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