小编Iai*_*ser的帖子

正则表达式匹配澳大利亚商业号码(ABN)

我需要一个正则表达式来匹配一个值,其中每个字符可以是0到9之间的数字或空格.该值必须包含11位数字.

例如,它应匹配格式为"012 345 678 90"或"01234567890"的值.

有人可以帮我这个吗?

regex

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

使用嵌套的div而不是表或流渲染RadioButtonList

我在C#.NET 3.5 RadioButtonList中以编程方式生成单选按钮列表,并使用a 来执行此操作.但是,我觉得非常令人沮丧的是RepeatLayout属性,只能设置为FlowTable.

表格用于表格数据,不用于显示表格.并且流程没有帮助,因为它不适合造型.

我真正想要的是一个可以用CSS解决的div嵌套.可以这样做吗?

一些例子来说明我正在谈论的内容和下面的示例代码.

流程示例

<span id="s1">
    <input id="s1_0" type="radio" value="Answer A" name="s1">
    <label for="s1_0">Answer A</label>
    <br>
    <input id="s1_1" type="radio" value="Answer B" name="s1">
    <label for="s1_1">Answer B</label>
</span>
Run Code Online (Sandbox Code Playgroud)

表的例子

<table border="0" id="s1">
    <tbody>
        <tr>
            <td><input type="radio" value="Answer A" name="s1" id="s1_0"><label for="s1_0">Answer A</label></td>
        </tr>
        <tr>
            <td><input type="radio" value="Answer B" name="s1" id="s1_1"><label for="s1_1">Answer B</label></td>
        </tr>
    </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

我真正想要的是什么

<div id="s1">
    <div>
        <input type="radio" value="Answer A" name="s1" id="s1_0">
        <label for="s1_0">Answer A</label>
    </div>
    <div>
        <input …
Run Code Online (Sandbox Code Playgroud)

css c# asp.net webforms radiobuttonlist

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

C#初学者:我的IList.Where()方法去了哪里?

我有另一个简单的(我认为),这让我很难过.我在我的一个控件中编写了一个方法,根据文件名获取CMS中文件的最新版本(即无论文件所在的文件夹是什么).我发现它很有用,我以为我会把它放在我的CMSToolbox类中,但是当我这样做时,我不能再使用Where()CMS提供的FileManager类的方法(它返回一个列表).

这是我班级的简化示例:

using System;
using System.Collections.Generic;
using CMS.CMS;
using CMS.Core;
using CMS.Web;

namespace CoA.CMS {
    public class ToolBox
    {
        public CMS.CMS.File getLatestFileVersionByFilename(string filename, int GroupID)
        {
            IList<CMS.CMS.File> fileWithName = FileManager.GetGroupAll(false, GroupID).Where(file => currentFileVersionIsNamed(file, filename)).ToList<CMS.CMS.File>();
            return getLatestFileFromListOfFiles(fileWithName);

        }
        protected bool currentFileVersionIsNamed(CMS.CMS.File file, string name)
        {
        }
        protected CMS.CMS.File  getLatestFileFromListOfFiles(CMS.CMS.File file)
        {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在Control的上下文中完成同样的事情时(实际上是由CMS提供的类扩展Control)我可以访问该Where()方法,但在我的ToolBox类中我没有.是什么赋予了?我认为,IList无论你在哪里使用它,总是允许访问相同的方法.

我又错了,哈哈:)


编辑:Filemanager.GetGroupAll()返回一个CMSList扩展的IList

c# ilist class where-clause

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

是否有更可读的方式来制作一长串的&&陈述?

假设我有一个冗长,复杂的条件列表,必须为true才能运行if语句.

if(this == that && foo != bar && foo != that && pins != needles && apples != oranges)
{
    DoSomethingInteresting();
}
Run Code Online (Sandbox Code Playgroud)

通常情况下,如果我被迫做这样的事情,我会把每个语句放在自己的行上,如下所示:

if
(
         this == that 
    &&    foo != bar 
    &&    foo != that 
    &&   pins != needles 
    && apples != oranges
)
{
    DoSomethingInteresting();
}
Run Code Online (Sandbox Code Playgroud)

但我仍觉得这有点乱.我很想将if语句的内容重构为它自己的属性

if(canDoSomethingInteresting)
{
    DoSomethingInteresting();
}
Run Code Online (Sandbox Code Playgroud)

但是那只是将所有的混乱移动到canDoSomethingInteresting()并没有真正解决问题.

正如我所说,我的goto解决方案是中间解决方案,因为它不会像最后一个那样模糊逻辑,并且比第一个更具可读性.但必须有更好的方法!

响应Sylon评论的示例

bool canDoSomethingInteresting
{
    get{
        //If these were real values, we could be more descriptive ;)
        bool thisIsThat = this == that; …
Run Code Online (Sandbox Code Playgroud)

c# design-patterns if-statement code-readability

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

动态加载程序集中的XML反序列化的NullReferenceException

我正在编写一个用于动态加载插件程序集的CMS插件Assembly.load.

注意:由于与进入无关的原因,前端静态加载程序集,而管理环境动态加载它.

我的插件有自己的xml配置文件,在第一次使用插件类时加载.使用配置文件反序列化为对象对象XmlSerializer.

当我通过前端静态加载程序集时,这种反序列化工作正常,但是当管理员尝试动态加载它时,我NullReferenceException从读者那里得到了一个.

我已经尝试使用Sgen预生成序列化程序集并将其添加到管理环境的"Bin"目录中,但这似乎没有任何效果.

堆栈跟踪:

[NullReferenceException: Object reference not set to an instance of an object.]
   Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderAccessibilityConfig..cctor() +1156

[TypeInitializationException: The type initializer for 'Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderAccessibilityConfig' threw an exception.]
   Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderAccessibilityConfig..ctor() +0
   Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializerContract.get_Reader() +44
   System.Xml.Serialization.TempAssembly.InvokeReader(XmlMapping mapping, XmlReader xmlReader, XmlDeserializationEvents events, String encodingStyle) +69
   System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) +101

[InvalidOperationException: There is an error in XML document (0, 0).]
   System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) +613
   System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader) +30
   CoA.WebUI.Controls.AccessibilityObjects.AccessibilityConfigBase`1.Deserialize(String xml) +196
   CoA.WebUI.Controls.AccessibilityObjects.AccessibilityConfigBase`1.LoadFromFile(String fileName) +256 …
Run Code Online (Sandbox Code Playgroud)

c# asp.net assemblies xml-serialization

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

在C#中,以下语法有何作用:((Classname)this.variableName).property

这是我正在查看的实际代码行:

ContentVersionCache cvc = ((PageBase)this.Page).cache;
Run Code Online (Sandbox Code Playgroud)

我知道这是一个非常基本的问题,但我刚刚开始学习C#,所以对我很轻松:)

干杯伊恩

.net c# asp.net

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

初学者:用C#扩展一个类,我做错了吗?

再次免责声明仍然在学习C#和OOP一般,所以我希望你能耐心陪我:)

我目前正在使用一个CMS,它有一个叫做类的类FileVersion,它基本上包含一个与文件有关的属性列表,如文件名,文件类型,字节大小,id,上传日期,is-latest-version等.

FileVersions 的列表包含在File其中具有自己的唯一ID的列表中.如果要从CMS下载特定文件,则使用以下内容构建URL:

string URL = "/files/"+file.id.toString()+"/"+file.fileVersion.Last().filename;
Run Code Online (Sandbox Code Playgroud)

现在,对于我正在处理的特定控件(专门处理文档文件),能够将URL与所有其他FileVersion信息一起存储以供以后使用是有意义的.所以我决定创建自己的类DocumentVersion,其中包含扩展FileVersion.这就是它的样子:

public partial class DocumentVersion : FileVersion
{
    public DocumentVersion() : base() { }
    public string link;
}
Run Code Online (Sandbox Code Playgroud)

现在我应该注意,似乎我不需要在这里实现一个接口 - 但是不要把它作为福音,这就是为什么我在这里.

但是,当我试图像我这样投下我FileVersionDocumentVersion时候:

DocumentVersion dv = ((DocumentVersion)fileversion);
Run Code Online (Sandbox Code Playgroud)

我得到以下异常:

无法将"Foo.CMS.FileVersion"类型的对象强制转换为"CoA.DocumentVersion".

我的想法是因为我试图在一个不同的命名空间中扩展一个类,而不是原来所在的,但就像我说的那样,OOP对我来说相对较新,所以我可能错了.

在此先感谢您的帮助.这个社区非常有价值!我只希望一旦我更熟练,我可以回馈:).

c# casting class extend

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

在Visual Studio中调试时我可以使用哪些"catch all"关键字 - 比如"this"?

再次,学习者在这里.

一般来说,我希望能够查看应用程序的整个状态,以了解我在当前范围内可以获得的信息.

我做了很多事情就是打开QuickWatch并进行评估this,它给了我当前课程中的所有内容.

我想知道是否有任何其他关键字我可以用来获得类似的东西,这将允许我询问应用程序状态的其他部分.比如,有没有办法看到另一个类里面的值?是否存在"全球"范围?

希望你能提供帮助,并希望我没有太模糊,因为我还在学习在C#环境中使用的正确术语.

在此先感谢您的帮助 :)

干杯

伊恩

c# debugging visual-studio-2008 visual-studio

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