error CS0542
пытался сделать оптимизацию путём отключения рендера объекта когда на него не смотрит камера, и включения обратно когда камера смотрит
получилось вот так
Используется csharp
using UnityEngine;
using System.Collections;
public class OnBecameVisible : MonoBehaviour {
void OnBecameInvisible() {
gameObject.GetComponent<MeshRenderer>().enabled = false;
}
void OnBecameVisible() {
gameObject.GetComponent<MeshRenderer>().enabled = false;
}
}
но Юнька выдаёт ошибку
error CS0542: `OnBecameVisible.OnBecameVisible()’: member names cannot be the same as their enclosing type
Последний раз редактировалось waruiyume 04 май 2015, 23:44, всего редактировалось 1 раз.
Причина: Переименовано
- Andrey_Sop
- UNец
- Сообщения: 13
- Зарегистрирован: 31 мар 2015, 22:29
Re: Оптимизация и помощь в скрипте
waruiyume 04 май 2015, 23:43
Переводить ошибку не пробовали?
Никакого профита от такой оптимизации не будет.
-
waruiyume - Адепт
- Сообщения: 6049
- Зарегистрирован: 30 окт 2010, 05:03
- Откуда: Ростов на Дону
Re: error CS0542
getAlex 05 май 2015, 14:39
1) Рендер и так отключается когда камера его не видит.
Frustum Culling отрезает весь рендер, не входящий в плоскости камеры(по умолчанию существует и всегда активен), а Occlusion Culling отрезает всё что не видит камера (если одни объекты заслоняют другие) — по умолчанию включен, выглядит как bool переменная на камере.
2) Функции не могут быть с таким же именем, как и название класса(Не считая перегрузку функций, но у них разная сигнатура, а у вас одна). Есть такая штука, называется конструктор класса. Вот у конструктора имя
может быть
должно быть такое же, как и у класса
- getAlex
- Адепт
- Сообщения: 1775
- Зарегистрирован: 10 авг 2013, 18:30
Вернуться в Скрипты
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15
I Have this error but i can’t identify the error (CS0542) for some reason:
member names cannot be the same as their enclosing type
Code:
class SuperTeam
{
string SuperTeamName;
public SuperTeam()
{
SuperTeamName = "";
}
public void SuperTeam (string nSuperTeamName)
{
SuperTeamName = nSuperTeamName;
}
}
asked Dec 4, 2013 at 21:52
6
The problem is here:
public void SuperTeam(string nSuperTeamName)
{
SuperTeamName = nSuperTeamName;
}
I believe you wanted to have a constructor for your class, and since constructor can’t have a return type, the compiler is treating it as a method. Now the method name is same as the class name, that is why you are getting the error.
- If it is a constructor then remove
void
(return type) - If it is a simple method then change the name to something other than
SuperTeam
See Details about your Error — Compiler Error CS0542:
The members of a class or struct cannot have the same name as the
class or struct, unless the member is a constructor
AND (thanks to @Alexei Levenkov)
This error might be caused if you inadvertently put a return type on
a constructor, which in effect makes it into an ordinary method.
answered Dec 4, 2013 at 21:56
HabibHabib
217k27 gold badges401 silver badges429 bronze badges
2
Your class is SuperTeam and it has a method called SuperTeam that isn’t a constructor. I’m guessing that it was supposed to be a constructor, in which case, drop the void
return type
public SuperTeam (string nSuperTeamName)
{
SuperTeamName = nSuperTeamName;
}
If it’s actually supposed to be a method for setting SuperTeamName
then change the name of the function (SetSuperTeamName
would seem appropriate), or better yet change it into a property with a getter and a setter.
answered Dec 4, 2013 at 21:55
Matt BurlandMatt Burland
44.1k18 gold badges95 silver badges168 bronze badges
you have conflict the method has some name as the class constructor
try this for example
public SuperTeam()
{
SuperTeamName = "";
}
public void SuperTeamMethod (string nSuperTeamName)
{
SuperTeamName = nSuperTeamName;
}
answered Dec 4, 2013 at 21:54
BRAHIM KamelBRAHIM Kamel
13.3k34 silver badges46 bronze badges
Your constructor with the string nSuperTeamName
is not supposed to have void
. By having void
, you made it one of the class’ members.
answered Dec 4, 2013 at 21:54
filin_cprt 0 / 0 / 1 Регистрация: 21.03.2022 Сообщений: 80 |
||||
1 |
||||
11.05.2022, 11:20. Показов 1655. Ответов 5 Метки нет (Все метки)
Не понимаю что и где повторяется… полистал на других сайтах, ничего не понял
__________________
0 |
2058 / 1591 / 678 Регистрация: 27.07.2012 Сообщений: 4,768 |
|
11.05.2022, 11:48 |
2 |
Вот где и что повторяется… Ну компилятор разве не пишет, что именно?
0 |
0 / 0 / 1 Регистрация: 21.03.2022 Сообщений: 80 |
|
11.05.2022, 11:51 [ТС] |
3 |
John Prick Миниатюры
0 |
Модератор 13217 / 9515 / 2558 Регистрация: 21.04.2018 Сообщений: 28,103 Записей в блоге: 2 |
|
11.05.2022, 12:06 |
4 |
Решение
А так ругается на 2 строку страницы xaml А ошибка в первой.
0 |
16739 / 12492 / 3283 Регистрация: 17.09.2011 Сообщений: 20,719 |
|
11.05.2022, 14:35 |
5 |
Решениеfilin_cprt, вы в классе HotelsPage объявили поле с именем HotelsPage, что делать нельзя.
0 |
0 / 0 / 1 Регистрация: 21.03.2022 Сообщений: 80 |
|
11.05.2022, 16:26 [ТС] |
6 |
kolorotur
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
11.05.2022, 16:26 |
6 |
C# Compiler Error
CS0542 – ‘user-defined type’ : member names cannot be the same as their enclosing type
Reason for the Error
There are multiple scenarios that will cause this error to appear in your C# program. These include
- The class contains the member with the same name as the class except the constructor.
- When you have a return type for a constructor.
Let’s look at our first example where the class contains the members with the same name as the class name.
using System; namespace DeveloperPublishConsoleCore { class Employee { // This returns the error code CS0542 public int Employee; } internal class Program { static void Main(string[] args) { Console.WriteLine("DeveloperPublish Hello World!"); } } }
In the above program, Employee class contains a field named Employee. This will result in the C# error code CS0542.
Here’s our second use case.
using System; namespace DeveloperPublishConsoleCore { class Employee { // This returns the error code CS0542 public int Employee() { return 0; } } internal class Program { static void Main(string[] args) { Console.WriteLine("DeveloperPublish Hello World!"); } } }
In the above program, the constructor in the Employee class returns a type which causes the error code CS0542.
Solution
You can fix this error by ensuring that you either rename the field or the member that is causing the issue. For the constructors , ensure that you don’t have the return type.
Hi, everyone. My first MSDN post; I hope this is the right place to ask this question.
I have created a class «GradeBook» with the following code:
using System;
public class GradeBook
{
public string CourseName { get; set; }
public GradeBook(string name)
{
CourseName = name;
}
public void DisplayWelcome ()
{
Console.WriteLine(«Welcome to the gradebook for coursen{0}», CourseName);
}
public void DetermineClassAverage ()
{
int grade;
int total = 0;
int gradeCount = 1;
double aveGrade;
while (gradeCount <= 10)
{
Console.WriteLine(«Please enter the next grade: «);
grade = Convert.ToInt32 (Console.ReadLine());
Console.WriteLine();
total += grade;
}
aveGrade = total / 10;
}
public void DisplayResults ()
{
WriteLine();
Console.ReadLine();
}
}
When I try to build my project, line 7 gives me error CS0542: ‘GradeBook’: Member names cannot be the same as their enclosing type.
Of course, line 7 is intended to be a constructor. Its name should be the same as the class name. Help for this error says that it is often caused by including a return type for a construction; I do not have one here.
I created the class in connection with an example in a C# book I am studying, and in comparing the code in the book, as far as I can tell, the first 10 lines are identical.
This is probably something obvious. but I can’t see it. What am I missing?
-
Changed type
Tuesday, May 19, 2009 1:07 AM
4 ответа
Проблема здесь:
public void SuperTeam(string nSuperTeamName)
{
SuperTeamName = nSuperTeamName;
}
Я считаю, что вы хотели иметь конструктор для своего класса, и поскольку конструктор не может иметь тип возврата, компилятор рассматривает его как метод. Теперь имя метода совпадает с именем класса, поэтому вы получаете ошибку.
- Если это конструктор, то удалите
void
(возвращаемый тип) - Если это простой метод, измените имя на другое, кроме
SuperTeam
Подробнее о вашей ошибке — Ошибка компилятора CS0542:
Члены класса или структуры не могут иметь то же имя, что и класс или структура, если только элемент не является конструктором
И (спасибо @Алексею Левенкову)
Эта ошибка может быть вызвана, если вы случайно поместите тип возвращаемого значения в конструктор, что фактически превращает его в обычный метод.
Habib
04 дек. 2013, в 20:27
Поделиться
у вас есть конфликт, метод имеет какое-то имя в качестве конструктора класса
попробуйте это, например
public SuperTeam()
{
SuperTeamName = "";
}
public void SuperTeamMethod (string nSuperTeamName)
{
SuperTeamName = nSuperTeamName;
}
BRAHIM Kamel
04 дек. 2013, в 19:52
Поделиться
Ваш класс — SuperTeam, и у него есть метод SuperTeam, который не является конструктором. Я предполагаю, что он должен был быть конструктором, и в этом случае следует удалить возвращаемый тип void
public SuperTeam (string nSuperTeamName)
{
SuperTeamName = nSuperTeamName;
}
Если он действительно должен быть методом установки SuperTeamName
тогда измените имя функции (например, SetSuperTeamName
) или еще лучше измените его на свойство с помощью геттера и сеттера.
Matt Burland
04 дек. 2013, в 19:39
Поделиться
Ваш конструктор со строкой nSuperTeamName
не должен иметь void
. Имея void
, вы сделали ее одним из членов класса.
Zinthos
04 дек. 2013, в 19:32
Поделиться
Ещё вопросы
- 1C # диаграмма класса — пользовательские метки для оси х?
- 0codeigniter $ this не загружается в контроллер
- 1Wysiwyg компонент для использования внутри моего приложения для Android?
- 0Определить размер буфера для __i64toa_s
- 0MySQL запрос для выбора максимального значения времени для максимальной даты для каждого клиента
- 0Как передать переменную из JavaScript в PHP с помощью jQuery POST
- 0Установка значения текстового поля с помощью GetElementsByName
- 0изображения из нескольких столбцов, которые полностью заполняют окно браузера
- 1Разборка приложения для Android
- 02 изображения. изменить только при наведении мыши
- 0AngularJS передача данных
- 1Python Twisted в PB, вызов функции клиентского сервера
- 0Обновление методов msql с помощью PDO
- 1очистить кэш, когда я запусту свое приложение в Android
- 0Как я могу вручную запустить рендеринг кнопки входа в Google по умолчанию
- 1Как отобразить элемент списка «Больше» в ListView?
- 0Отличный путь между 2 символами в Mysql
- 0Использование пустого класса CSS для поиска элементов HTML
- 1Apache poi HSSFWorkbook перезаписывает стили из шаблона XLS
- 1Как вставить значение в MS Access с помощью Java
- 0SQL — Выберите Топ результат для каждого игрока в последних 10 результатах каждого игрока
- 0Как включить медленный журнал запросов для движка Amazon «Aurora MySQL»?
- 0MySQL выбрать все данные таблицы из двух таблиц в двух базах данных
- 1Улучшение производительности вложенного цикла for в node.js
- 1Централизация получения переменной сеанса в ресурсе REST Джерси
- 0Как скопировать файл с пробелами и полными остановками в имени файла, используя функцию копирования php? [Дубликат]
- 0Элемент ошибки фокуса в IE8
- 0Как проанализировать каждый элемент массива?
- 0JQuery переключение элементов для редактирования
- 0проверить пустые или не значения в столбцах в R
- 1установить расширенную ширину и высоту ImageView программно — Android
- 0Используется ли в моей директиве определяющая, изолированная или дочерняя область?
- 0Как получить часы и минуты в этом коде MySQL PHP
- 1Реактивность в пользовательских виджетах
- 0Псевдоним MySQL для Subquery не работает
- 0как установить кликаемый элемент списка в angularJS?
- 0Генерация уникального URL для выполнения действия
- 1Как использовать пользовательский элемент управления поверх элемента меню в C #?
- 0IE 6-7 толкает вниз плавающий div
- 0MYSQL две таблицы сортировки TRICKY
- 1pip install производит «Не удалось найти версию, которая удовлетворяет требованию»
- 0Присвоение функции переменной без вызова этой функции
- 0preg для извлечения из тега h1
- 0JQuery FadeTo — как использовать
- 0$ http Запрос 404 не найден при добавлении localhost?
- 1Список классов
- 1install4j — получить идентификатор компонента, если настроенный идентификатор установлен
- 1Цвет фона редактора ячеек со списком
- 0Форматирование, преобразование из строки C
- 1создать наследовать переопределить ODOO