Ничто просто еще не может найти простым и изящным, но у меня есть одна идея: Если Вы знаете тип свойства, Вы хотите установить, можно записать собственное default(T)
. Существует два случая - T
, тип значения, и T
ссылочный тип. Вы видите это путем проверки T.IsValueType
. Если T
ссылочный тип, то можно просто установить его на null
. Если T
будет тип значения, то он будет иметь конструктора без параметров по умолчанию, которого можно вызвать для получения "пустого" значения.
Веб-сайты не имеют / не поддерживают пространство имен. Веб-приложения делают.
Чтобы ответить на вопрос, поскольку создается новый «веб-сайт», пространство имен не играет роли. Что касается того, как получить доступ к другим классам страниц WebForm со страницы Webform, я не понял причин для этого. И я не думаю, что это выполнимо (поправьте меня, если я ошибаюсь).
В любом случае есть способы обойти. Если у вас есть многоразовая бизнес-логика / пользовательский интерфейс / другая логика, используемая в классе одной веб-формы, просто переместите эти методы, чтобы указать файл XXX.cs в App_Code. Пространство имен не требуется, и его можно использовать во всех классах веб-форм.
Посмотрите код программной части (Default.aspx.cs в вашем случае) рассматриваемой страницы. Там вы увидите свое пространство имен. Aspx - это дополнение к классу в коде программной части, которое объединено с помощью объявления частичного класса.
Я только что создал новый проект веб-приложения. Код программной части выглядит так:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
Итак, вы видите пространство имен «WebApplication1». Вы это видите, верно?
ДОБАВЛЕНО: Я снова создал проект веб-сайта, чтобы проверить это. Хорошо, подтверждаю, я не вижу там объявлений пространств имен. Немного погуглив, я нашел этот пост:
asp.net - Веб-сайт против веб-приложения (ссылка исправлена)
Новая модель компиляции отбрасывала сам файл проекта Visual Studio, взяла asp.net вернуться к концепции "компиляции на лету", все, кроме , устранили использование пространств имен на веб-сайте и радикально изменили способ организации шаблона пользовательского интерфейса и связанного с ним кода программной части.
Судя по всему, он просто объединяет все классы вместе, как классы страниц, так и классы пользовательской логики вы обычно помещаете в папку App_Code
. Средство просмотра классов также не отображает объекты страницы, даже если я помещаю их в свои пользовательские пространства имен, но он делает это правильно вместе с пространствами имен для объявлений в папке App_Code
. Полагаю, ребята из команды VS не хотели, чтобы вы заботились о пространствах имен для классов страниц.
App_Code
. Средство просмотра классов также не отображает объекты страницы, даже если я помещаю их в свои пользовательские пространства имен, но он делает это правильно вместе с пространствами имен для объявлений в папке App_Code
. Полагаю, ребята из команды VS не хотели, чтобы вы заботились о пространствах имен для классов страниц. как классы страниц, так и классы пользовательской логики вы обычно помещаете в папку App_Code
. Средство просмотра классов также не отображает объекты страницы, даже если я помещаю их в свои пользовательские пространства имен, но он делает это правильно вместе с пространствами имен для объявлений в папке App_Code
. Полагаю, ребята из команды VS не хотели, чтобы вы заботились о пространствах имен для классов страниц.