如果我知道字符串的长度,我应该将其声明为具有特定长度的字符

Jim*_*988 0 c# string entity-framework

我正在为我的C#.NET项目准备一个实体框架模型(CODE FIRST).我突然意识到我将把PageTitles存储为字符串,除了可用的最大和最小位之外没有长度限制.

我假设如果我知道一个字符串长度为255个字符并且永远不会超过该字符串,我可以将我的字符串声明为新的字符[255].

使用char而不是string的缺点是什么.使用char代替字符串有什么好处.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ContentManagementSystem.Models
{
    public class Page
    {
        int Id { get; set; }
        string PageTitle { get; set; }
        // This seems wasteful and unclear     

        char[] PageTitle = new char[255]; 
        // How would i apply { get; set; } to this?
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法限制字符串大小?

--------------- ANSWERED ---------------------

这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using System.ComponentModel.DataAnnotations;
using System.Data.Entity;

namespace ContentManagementSystem.Models
{
    public class Page
    {
        public int Id { get; set; }        
        [MaxLength(255)] public string Title { get; set; }
        [MaxLength(255)] public string Description { get; set; }
        public string Content { get; set; }
    }

    public class MyDbContext : DbContext
    {
        public DbSet<Page> Pages { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

Kir*_*oll 6

不,char[]当您打算将其作为字符串进行操作时,不应使用a .为什么?string如果使用字符数组,Beacuse 有很多有用的方法.角色阵列的性能优势(如果有的话)将极其微小.