63 24 error cs0023 operator cannot be applied to operand of type void

i tried a lot of links to the mentined error but i am not getting any solution. Compiler Error Message: CS0023: Operator '.' cannot be applied to operand of type 'void' Source Error: Line 56: if (

i tried a lot of links to the mentined error but i am not getting any solution.

Compiler Error Message: CS0023: Operator '.' cannot be applied to operand of type 'void'

Source Error:


Line 56: if (iscomplete == false)
Line 57: {
Line 58: var qryPartnerJobs = at.uspGetPartnerTrade(Convert.ToInt32(Session["user"]), assigned, servid, isapply).ToList();
Line 59: gvPartnerJob.DataSource = qryPartnerJobs;
Line 60: gvPartnerJob.DataBind();

Source File: 

> Blockquote

alltradepartners.comwwwroottestpartnerjobs_view.aspx.cs Line: 58

Sp Code

ALTER PROC [dbo].[uspGetPartnerTrade] @UserID BIGINT, @IsAssigned BIT = NULL, @ServiceID INT = NULL, @IsPartnerApply BIT = NULL
AS
BEGIN
    SET NOCOUNT ON
    SET FMTONLY OFF
    DECLARE @TradeList XML
    CREATE TABLE #tblTradeList (Trade VARCHAR(255))
    DECLARE @IsUserAdmin BIT = 0, @SQL NVARCHAR(MAX), @WhereClause NVARCHAR(MAX) = ''
    DECLARE @ParmDefinition NVARCHAR(500)

    SELECT @IsUserAdmin = 1 FROM users U INNER JOIN [role] R ON U.RoleID = R.RoleID 
        WHERE R.RoleName = 'admin' AND U.IsActive = 1 AND U.UserID = @UserID

    SET @TradeList = (SELECT CAST('<A>'+ REPLACE([td].Trades,', ','</A><A>')+ '</A>' AS XML)
    FROM tradesman_details [td] WHERE [td].UserID = @UserID)

    INSERT INTO #tblTradeList (Trade)
        SELECT t.value('.', 'VARCHAR(255)') AS inVal FROM @TradeList.nodes('/A') AS x(t) 

    IF @IsUserAdmin = 1 
    BEGIN
        IF @IsAssigned IS NOT NULL
        BEGIN
            SET @WhereClause = ' AND [t2].IsAssigned = @IsAssigned '
        END
        SET @Sql = 'SELECT [t0].[JobID] AS [JobID], [t2].[IsAssigned] AS [IsAssigned], [t0].[JobUniqueID], [t1].[FirstName], 
        [t1].[LastName], [t0].[IsApproved], [t0].[IsActive], [t0].[IsQuoted], [t0].[IsAssigned] AS [Column1], 
        [t0].[ApprovalDate], CAST([t0].[Description] AS NVARCHAR(MAX)) AS [Description], [t3].[ServiceName], [t4].[ServiceTypeName]
        FROM [dbo].[jobs] AS [t0]
        INNER JOIN [dbo].[users] AS [t1] ON [t0].[CustomerUserID] = [t1].[UserID]
        LEFT OUTER JOIN [dbo].[job_assigned] AS [t2] ON [t0].[JobID] = [t2].[JobID]
        INNER JOIN [dbo].[services] AS [t3] ON [t3].[ServiceID] = [t0].[ServiceID]
        INNER JOIN [dbo].[service_type] AS [t4] ON [t4].[ServiceTypeID] = [t0].[ServiceTypeID]
        WHERE 
        (((
        SELECT COUNT(*) FROM [dbo].[job_quotes] AS [t5]
        WHERE [t5].[JobID] = [t0].[JobID] )) <= 3) AND 
        (NOT ([t0].[IsComplete] = 1)) 
        AND [t0].ServiceID = ISNULL(@ServiceID, [t0].ServiceID) 
        AND [t3].ServiceName = [t3].ServiceName
        AND [t1].PostCode = [t1].PostCode
        AND [t0].IsActive = 1 AND [t0].IsApproved = 1'

        SET @ParmDefinition = N'@IsAssigned BIT, @ServiceID INT'

        SET @Sql = @Sql + @WhereClause

        EXECUTE sp_executesql @Sql, @ParmDefinition, @IsAssigned = @IsAssigned, @ServiceID = @ServiceID


    END
    ELSE
    BEGIN

        IF @IsAssigned IS NOT NULL
        BEGIN
            SET @WhereClause = ' AND [t2].IsAssigned = @IsAssigned '
        END

        IF @IsPartnerApply IS NOT NULL
        BEGIN
            SET @WhereClause = @WhereClause + ' AND [t6].[IsPartnerApply] = @IsPartnerApply '
        END

        SET @Sql = 'SELECT DISTINCT [t0].[JobID] AS [JobID], [t2].[IsAssigned] AS [IsAssigned], [t0].[JobUniqueID], [t1].[FirstName], 
        [t1].[LastName], [t0].[IsApproved], [t0].[IsActive], [t0].[IsQuoted], [t0].[IsAssigned] AS [Column1], 
        [t0].[ApprovalDate], CAST([t0].[Description] AS NVARCHAR(MAX)) AS [Description], [t3].[ServiceName], [t4].[ServiceTypeName]
        FROM [dbo].[jobs] AS [t0]
        INNER JOIN [dbo].[users] AS [t1] ON [t0].[CustomerUserID] = [t1].[UserID]
        LEFT OUTER JOIN [dbo].[job_assigned] AS [t2] ON [t0].[JobID] = [t2].[JobID]
        LEFT OUTER JOIN [dbo].[job_quotes] AS [t6] ON [t0].[JobID] = [t6].[JobID] 
        INNER JOIN [dbo].[services] AS [t3] ON [t3].[ServiceID] = [t0].[ServiceID]
        INNER JOIN [dbo].[service_type] AS [t4] ON [t4].[ServiceTypeID] = [t0].[ServiceTypeID]
        WHERE 
        (((
        SELECT COUNT(*) FROM [dbo].[job_quotes] AS [t5]
        WHERE [t5].[JobID] = [t0].[JobID] )) <= 3) AND 
        (NOT ([t0].[IsComplete] = 1))
        AND [t0].ServiceID = ISNULL(@ServiceID, [t0].ServiceID)
        AND [t0].IsActive = 1 AND [t0].IsApproved = 1
        AND [t3].ServiceName IN (SELECT Trade collate SQL_Latin1_General_CP1_CI_AS FROM #tblTradeList  WHERE Trade <> '''')
        AND [t1].PostCode IN (SELECT PostCode FROM users WHERE UserID  = @UserID)'

        SET @ParmDefinition = N'@IsAssigned BIT, @ServiceID INT,  @IsPartnerApply BIT, @UserID BIGINT'

        SET @Sql = @Sql + @WhereClause

        EXECUTE sp_executesql @Sql, @ParmDefinition, @IsAssigned = @IsAssigned, @ServiceID = @ServiceID, @IsPartnerApply = @IsPartnerApply, @UserID = @UserID

    END
    DROP TABLE #tblTradeList
END

  • Remove From My Forums
  • Question

  • User-1136062158 posted

    Hi! I am adding a page dynamically and I am getting this error it seems like it doesn’t like —
    Response.Write(strHeader).ToString:

    Compiler Error Message: CS0023: Operator ‘.’ cannot be applied to operand of type ‘void’

    Source Error:

    Line 152:            aspx.Append("<table align="center" class="style1"><tr><td class="style7" colspan="2" >");
    Line 153:            aspx.Append("rn");
    Line 154:            aspx.Append(Response.Write(strHeader).ToString);
    Line 155:            aspx.Append("rn");
    Line 156:            aspx.Append("<br /></td></tr><tr><td class="style3" valign="top">");

    this is what i have on top of this code:

    protected void SaveTheme()

    { code here…

    Thank you for the help!

Answers

  • User-1136062158 posted

    This is the solution: hope it helps somebody!

    aspx.Append(«<%» +
    «Response.Write» + «(«» + strHeader +
    «»);» + «%>»);

    • Marked as answer by

      Thursday, October 7, 2021 12:00 AM

Когда я пытаюсь установить значение rb.AddForce (firePoint.forward.Set (newX, newY, newZ), я получаю следующую ошибку Оператор ‘*’ не может быть применен к операндам типа ‘void’ и ‘float’. Я действительно не уверен, что делать с этой проблемой. Ps: Это мой первый вопрос о переполнении стека, поэтому я извиняюсь, если я спросил почему-то неправильно, но да, это то, что есть.

// New Input System
Player inputActions;
// Bullet stuff
public Transform firePoint;
public GameObject bulletPrefab;
public float bulletForce = 20f;
// Flash stuff
public Transform flashPos;
public GameObject flashPrefab;
// New Bullet Rotation
private float newX = 90;
private float newY = 0;
private float newZ = 0;

private void Awake()
{
    inputActions = new Player();
    inputActions.Enable();
    

    // You can define a function to handle the press
    inputActions.PlayerMain.Shoot.performed += ctx => Fire();

    // You can define a function to handle the press
   // Inputs.Player.OtherAction.performed += FunctionThatRuns();
}



private void Fire()
{
    //print("Boom!");
    // For Bullet
    AudioManager.instance.Play("Shoot");
    GameObject bullet = Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
    Rigidbody rb = bullet.GetComponent<Rigidbody>();
    // Part when I getting error Operator '*' cannot be applied to operands of type 'void' and 'float'
    rb.AddForce(firePoint.forward.Set(newX, newY, newZ) * bulletForce, ForceMode.Impulse);
    // For Flash
    GameObject flashEffect = Instantiate(flashPrefab, flashPos.transform.position, Quaternion.identity);
    Destroy(flashEffect, 0.1f);
}

2 ответа

Лучший ответ

Как уже объяснялось достаточно часто, теперь Vector3.Set — это void, который ничего не возвращает -> вы не можете умножить его на float.

Вы хотите использовать только

firePoint.forward * bulletForce

Чтобы выстрелить в направлении вектора firePoint.forward.

Похоже, вы пытаетесь дополнительно повернуть пулю на 90 ° по локальной оси X перед выстрелом.

Вы хотите сделать это по-разному:

// Uses the bullets local space by default
bullet.transform.Rotate(90, 0, 0);  

rb.AddForce(firePoint.forward * bulletForce, ForceMode.Impulse);


1

derHugo
9 Янв 2021 в 19:40

Поскольку сейчас кажется, что он не будет закрыт, и вы не можете следить за комментариями, я отвечаю на него здесь.

Ваша ошибка возникает в rb.AddForce(firePoint.forward.Set(newX, newY, newZ) * bulletForce, ForceMode.Impulse);, поэтому давайте разберем это выражение на несколько операторов. Это эквивалентно:

var setResult = firePoint.forward.Set(newX, newY, newZ); //1
var totalForce = setResult * bulletForce; //bulletForce is a "float"
rb.AddForce(totalForce, ForceMode.Impulse);

Проблема находится в //1. forward.Set не возвращает никакого значения, поэтому присвоение неверно. Вы пытаетесь умножить void (т. Е. «Без типа» или «без значения») на значение float. Это нарушает основные языковые правила.

Ошибка компилятора сообщает вам, что он (справедливо) не смог найти в кодовой базе оператора, который определяет, как умножить два значения типов void и float.

Итак, настоящий вопрос здесь в том, что вы ожидаете от forward.Set(), чтобы вернуть это значение, и как найти это значение, поскольку этот вызов метода не вернет вам ничего, что вы могли бы использовать .

Вот как должен выглядеть код (в развернутом виде):

firePoint.forward.Set(newX, newY, newZ);
Vector3 direction = /* ____ */;
Vector3 totalForce = direction * bulletForce;
rb.AddForce(totalForce, ForceMode.Impulse);

А теперь скажите мне, что происходит в /* ____ */. Я подозреваю, что это firePoint.forward, но только вы можете это подтвердить.


-1

Harshdeep Singh
9 Янв 2021 в 19:29

Я перепробовал много ссылок на упомянутую ошибку, но не нашел решения.

Compiler Error Message: CS0023: Operator '.' cannot be applied to operand of type 'void'

Source Error:


Line 56: if (iscomplete == false)
Line 57: {
Line 58: var qryPartnerJobs = at.uspGetPartnerTrade(Convert.ToInt32(Session["user"]), assigned, servid, isapply).ToList();
Line 59: gvPartnerJob.DataSource = qryPartnerJobs;
Line 60: gvPartnerJob.DataBind();

Source File: 

> Blockquote

alltradepartners.comwwwroottestpartnerjobs_view.aspx.cs Line: 58

Сп-код

ALTER PROC [dbo].[uspGetPartnerTrade] @UserID BIGINT, @IsAssigned BIT = NULL, @ServiceID INT = NULL, @IsPartnerApply BIT = NULL
AS
BEGIN
    SET NOCOUNT ON
    SET FMTONLY OFF
    DECLARE @TradeList XML
    CREATE TABLE #tblTradeList (Trade VARCHAR(255))
    DECLARE @IsUserAdmin BIT = 0, @SQL NVARCHAR(MAX), @WhereClause NVARCHAR(MAX) = ''
    DECLARE @ParmDefinition NVARCHAR(500)

    SELECT @IsUserAdmin = 1 FROM users U INNER JOIN [role] R ON U.RoleID = R.RoleID 
        WHERE R.RoleName = 'admin' AND U.IsActive = 1 AND U.UserID = @UserID

    SET @TradeList = (SELECT CAST('<A>'+ REPLACE([td].Trades,', ','</A><A>')+ '</A>' AS XML)
    FROM tradesman_details [td] WHERE [td].UserID = @UserID)

    INSERT INTO #tblTradeList (Trade)
        SELECT t.value('.', 'VARCHAR(255)') AS inVal FROM @TradeList.nodes('/A') AS x(t) 

    IF @IsUserAdmin = 1 
    BEGIN
        IF @IsAssigned IS NOT NULL
        BEGIN
            SET @WhereClause = ' AND [t2].IsAssigned = @IsAssigned '
        END
        SET @Sql = 'SELECT [t0].[JobID] AS [JobID], [t2].[IsAssigned] AS [IsAssigned], [t0].[JobUniqueID], [t1].[FirstName], 
        [t1].[LastName], [t0].[IsApproved], [t0].[IsActive], [t0].[IsQuoted], [t0].[IsAssigned] AS [Column1], 
        [t0].[ApprovalDate], CAST([t0].[Description] AS NVARCHAR(MAX)) AS [Description], [t3].[ServiceName], [t4].[ServiceTypeName]
        FROM [dbo].[jobs] AS [t0]
        INNER JOIN [dbo].[users] AS [t1] ON [t0].[CustomerUserID] = [t1].[UserID]
        LEFT OUTER JOIN [dbo].[job_assigned] AS [t2] ON [t0].[JobID] = [t2].[JobID]
        INNER JOIN [dbo].[services] AS [t3] ON [t3].[ServiceID] = [t0].[ServiceID]
        INNER JOIN [dbo].[service_type] AS [t4] ON [t4].[ServiceTypeID] = [t0].[ServiceTypeID]
        WHERE 
        (((
        SELECT COUNT(*) FROM [dbo].[job_quotes] AS [t5]
        WHERE [t5].[JobID] = [t0].[JobID] )) <= 3) AND 
        (NOT ([t0].[IsComplete] = 1)) 
        AND [t0].ServiceID = ISNULL(@ServiceID, [t0].ServiceID) 
        AND [t3].ServiceName = [t3].ServiceName
        AND [t1].PostCode = [t1].PostCode
        AND [t0].IsActive = 1 AND [t0].IsApproved = 1'

        SET @ParmDefinition = N'@IsAssigned BIT, @ServiceID INT'

        SET @Sql = @Sql + @WhereClause

        EXECUTE sp_executesql @Sql, @ParmDefinition, @IsAssigned = @IsAssigned, @ServiceID = @ServiceID


    END
    ELSE
    BEGIN

        IF @IsAssigned IS NOT NULL
        BEGIN
            SET @WhereClause = ' AND [t2].IsAssigned = @IsAssigned '
        END

        IF @IsPartnerApply IS NOT NULL
        BEGIN
            SET @WhereClause = @WhereClause + ' AND [t6].[IsPartnerApply] = @IsPartnerApply '
        END

        SET @Sql = 'SELECT DISTINCT [t0].[JobID] AS [JobID], [t2].[IsAssigned] AS [IsAssigned], [t0].[JobUniqueID], [t1].[FirstName], 
        [t1].[LastName], [t0].[IsApproved], [t0].[IsActive], [t0].[IsQuoted], [t0].[IsAssigned] AS [Column1], 
        [t0].[ApprovalDate], CAST([t0].[Description] AS NVARCHAR(MAX)) AS [Description], [t3].[ServiceName], [t4].[ServiceTypeName]
        FROM [dbo].[jobs] AS [t0]
        INNER JOIN [dbo].[users] AS [t1] ON [t0].[CustomerUserID] = [t1].[UserID]
        LEFT OUTER JOIN [dbo].[job_assigned] AS [t2] ON [t0].[JobID] = [t2].[JobID]
        LEFT OUTER JOIN [dbo].[job_quotes] AS [t6] ON [t0].[JobID] = [t6].[JobID] 
        INNER JOIN [dbo].[services] AS [t3] ON [t3].[ServiceID] = [t0].[ServiceID]
        INNER JOIN [dbo].[service_type] AS [t4] ON [t4].[ServiceTypeID] = [t0].[ServiceTypeID]
        WHERE 
        (((
        SELECT COUNT(*) FROM [dbo].[job_quotes] AS [t5]
        WHERE [t5].[JobID] = [t0].[JobID] )) <= 3) AND 
        (NOT ([t0].[IsComplete] = 1))
        AND [t0].ServiceID = ISNULL(@ServiceID, [t0].ServiceID)
        AND [t0].IsActive = 1 AND [t0].IsApproved = 1
        AND [t3].ServiceName IN (SELECT Trade collate SQL_Latin1_General_CP1_CI_AS FROM #tblTradeList  WHERE Trade <> '''')
        AND [t1].PostCode IN (SELECT PostCode FROM users WHERE UserID  = @UserID)'

        SET @ParmDefinition = N'@IsAssigned BIT, @ServiceID INT,  @IsPartnerApply BIT, @UserID BIGINT'

        SET @Sql = @Sql + @WhereClause

        EXECUTE sp_executesql @Sql, @ParmDefinition, @IsAssigned = @IsAssigned, @ServiceID = @ServiceID, @IsPartnerApply = @IsPartnerApply, @UserID = @UserID

    END
    DROP TABLE #tblTradeList
END

Понравилась статья? Поделить с друзьями:

Читайте также:

  • 628 ошибка при подключении к интернету pppoe
  • 6264 ошибка мерседес w204
  • 6230 ошибка kyocera
  • 619 ошибка при подключении к интернету ростелеком
  • 618 ошибка при подключении к интернету

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии